summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--tests/basics/builtin_range.py16
-rw-r--r--tests/basics/fun_error.py3
-rw-r--r--tests/basics/getitem.py10
-rw-r--r--tests/basics/namedtuple1.py18
-rw-r--r--tests/basics/struct1.py3
-rw-r--r--tests/extmod/zlibd_decompress.py6
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")