You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
# 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("~[]", 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)
|
|
|
|
# object with buffer protocol needed on rhs
|
|
test_exc("bytearray(1) + 1", TypeError)
|
|
|
|
# unsupported subscription
|
|
test_exc("1[0]", TypeError)
|
|
test_exc("1[0] = 1", TypeError)
|
|
test_exc("''['']", TypeError)
|
|
test_exc("'a'[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)
|
|
|