blob: 8a0c17af5809030385050e80eaaa94a95185b63b (
plain)
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
|
'''Tests for invalid isinstance with compound types'''
# True negatives
isinstance(0, int | str)
isinstance(0, int | int | int)
isinstance(0, int | str | list | float)
isinstance(0, (int | str) | (list | float))
IntOrStr = int | str
isinstance(0, IntOrStr)
ListOrDict = list | dict
isinstance(0, (float | ListOrDict) | IntOrStr)
# True positives
isinstance(0, int | 5) # [isinstance-second-argument-not-valid-type]
isinstance(0, str | 5 | int) # [isinstance-second-argument-not-valid-type]
INT = 5
isinstance(0, INT | int) # [isinstance-second-argument-not-valid-type]
# FALSE NEGATIVES
# Parameterized generics will raise type errors at runtime.
# Warnings should be raised, but aren't (yet).
isinstance(0, list[int])
ListOfInts = list[int]
isinstance(0, ListOfInts)
|