diff options
author | Damien George <damien.p.george@gmail.com> | 2015-03-25 23:10:09 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-03-25 23:10:09 +0000 |
commit | 214179b430ebc1101e28b19248b6166f5e511e6b (patch) | |
tree | 74f8dc7b2e9dbfd902514b82a698e9ddaa8bb4bc /tests/basics/op_error.py | |
parent | 44f65c0e2f5ce27ce90bbec218ecb39cba9d75a2 (diff) | |
download | micropython-214179b430ebc1101e28b19248b6166f5e511e6b.tar.gz micropython-214179b430ebc1101e28b19248b6166f5e511e6b.zip |
tests: Add tests for SyntaxError, TypeError, and other missing things.
This is intended to improve coverage of the test suite.
Diffstat (limited to 'tests/basics/op_error.py')
-rw-r--r-- | tests/basics/op_error.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/basics/op_error.py b/tests/basics/op_error.py new file mode 100644 index 0000000000..cfd6ffa8c4 --- /dev/null +++ b/tests/basics/op_error.py @@ -0,0 +1,43 @@ +# test errors from bad operations (unary, binary, etc) + +def test_exc(code, exc): + try: + exec(code) + print("no exception") + except exc: + print("right exception") + except: + print("wrong exception") + +# unsupported unary operators +test_exc("~None", TypeError) +test_exc("~[]", TypeError) +test_exc("~bytearray()", TypeError) + +# unsupported binary operators +test_exc("False in True", TypeError) +test_exc("1 * {}", TypeError) +test_exc("1 in 1", TypeError) +test_exc("bytearray() // 2", TypeError) +test_exc("m = memoryview(bytearray())\nm += bytearray()", TypeError) + +# object with buffer protocol needed on rhs +test_exc("bytearray(1) + 1", TypeError) +test_exc("(1 << 70) in 1", TypeError) + +# unsupported subscription +test_exc("1[0]", TypeError) +test_exc("1[0] = 1", TypeError) +test_exc("del 1[0]", TypeError) + +# not callable +test_exc("1()", TypeError) + +# not an iterator +test_exc("next(1)", TypeError) + +# must be an exception type +test_exc("raise 1", TypeError) + +# no such name in import +test_exc("from sys import youcannotimportmebecauseidontexist", ImportError) |