diff options
| author | Damien George <damien.p.george@gmail.com> | 2015-04-05 00:03:43 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2015-04-05 00:03:43 +0100 |
| commit | e5c4362a98cf31d909476d9f06825228f05a2c82 (patch) | |
| tree | d6642e27a50fad6660a5705e900df86c6c25c1d7 /tests/basics | |
| parent | 97abe22963af5b62656cef5a46c195215f75f7d2 (diff) | |
tests: Add some more tests to improve code coverage of corner cases.
Diffstat (limited to 'tests/basics')
| -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 |
5 files changed, 47 insertions, 3 deletions
diff --git a/tests/basics/builtin_range.py b/tests/basics/builtin_range.py index 25f8b84fe..9e8294457 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 02af7b1bb..305b24911 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 f39296aca..3029f8303 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 9afeed940..ae795ba6d 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 cebffc142..09ecd20a6 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)) |
