diff options
-rw-r--r-- | tests/basics/builtin_range.py | 16 | ||||
-rw-r--r-- | tests/basics/fun_error.py | 3 | ||||
-rw-r--r-- | tests/basics/getitem.py | 10 | ||||
-rw-r--r-- | tests/basics/namedtuple1.py | 18 | ||||
-rw-r--r-- | tests/basics/struct1.py | 3 | ||||
-rw-r--r-- | tests/extmod/zlibd_decompress.py | 6 |
6 files changed, 53 insertions, 3 deletions
diff --git a/tests/basics/builtin_range.py b/tests/basics/builtin_range.py index 25f8b84fe5..9e8294457f 100644 --- a/tests/basics/builtin_range.py +++ b/tests/basics/builtin_range.py @@ -3,6 +3,10 @@ # print print(range(4)) +# bool +print(bool(range(0))) +print(bool(range(10))) + # len print(len(range(0))) print(len(range(4))) @@ -29,3 +33,15 @@ print(range(4)[1:-2:2]) print(range(1, 2, 3).start) print(range(1, 2, 3).stop) print(range(1, 2, 3).step) + +# bad unary op +try: + -range(1) +except TypeError: + print("TypeError") + +# bad subscription (can't store) +try: + range(1)[0] = 1 +except TypeError: + print("TypeError") diff --git a/tests/basics/fun_error.py b/tests/basics/fun_error.py index 02af7b1bba..305b249111 100644 --- a/tests/basics/fun_error.py +++ b/tests/basics/fun_error.py @@ -29,3 +29,6 @@ test_exc("[].sort(noexist=1)", TypeError) # function with keyword args not given a specific keyword arg test_exc("enumerate()", TypeError) + +# kw given for positional, but a different positional is missing +test_exc("def f(x, y): pass\nf(x=1)", TypeError) diff --git a/tests/basics/getitem.py b/tests/basics/getitem.py index f39296aca3..3029f83035 100644 --- a/tests/basics/getitem.py +++ b/tests/basics/getitem.py @@ -20,3 +20,13 @@ try: next(it) except StopIteration: pass + +# this class raises a non-StopIteration exception on iteration +class A: + def __getitem__(self, i): + raise TypeError +try: + for i in A(): + pass +except TypeError: + print("TypeError") diff --git a/tests/basics/namedtuple1.py b/tests/basics/namedtuple1.py index 9afeed9408..ae795ba6de 100644 --- a/tests/basics/namedtuple1.py +++ b/tests/basics/namedtuple1.py @@ -49,10 +49,22 @@ try: except TypeError: print("TypeError") +# enough args, but kw is wrong +try: + t = T(1, baz=3) +except TypeError: + print("TypeError") + +# bad argument for member spec +try: + namedtuple('T', 1) +except TypeError: + print("TypeError") + # Try single string -# Not implemented so far -#T3 = namedtuple("TupComma", "foo bar") -#t = T3(1, 2) +T3 = namedtuple("TupComma", "foo bar") +t = T3(1, 2) +print(t.foo, t.bar) # Try single string with comma field seperator # Not implemented so far diff --git a/tests/basics/struct1.py b/tests/basics/struct1.py index cebffc1425..09ecd20a63 100644 --- a/tests/basics/struct1.py +++ b/tests/basics/struct1.py @@ -37,3 +37,6 @@ print(struct.pack("<I", 0xffffffff)) # check maximum unpack print(struct.unpack("<I", b"\xff\xff\xff\xff")) print(struct.unpack("<Q", b"\xff\xff\xff\xff\xff\xff\xff\xff")) + +# network byte order +print(struct.pack('!i', 123)) diff --git a/tests/extmod/zlibd_decompress.py b/tests/extmod/zlibd_decompress.py index 4d8e44f3ac..4a898f27c7 100644 --- a/tests/extmod/zlibd_decompress.py +++ b/tests/extmod/zlibd_decompress.py @@ -23,3 +23,9 @@ exp = b"hello" out = zlib.decompress(v, -15) assert(out == exp) print(exp) + +# this should error +try: + zlib.decompress(b'abc') +except Exception: + print("Exception") |