summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/op_error.py
blob: 19ce04bc520ce2af16e94bb260feacfd0106f50b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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)
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("''['']", 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)