24
24
25
25
# List of files that contain test case descriptions.
26
26
typecheck_files = [
27
- 'check-basic.test' ,
28
- 'check-union-or-syntax.test' ,
29
- 'check-callable.test' ,
30
- 'check-classes.test' ,
31
- 'check-statements.test' ,
32
- 'check-generics.test' ,
33
- 'check-dynamic-typing.test' ,
34
- 'check-inference.test' ,
35
- 'check-inference-context.test' ,
36
- 'check-kwargs.test' ,
37
- 'check-overloading.test' ,
38
- 'check-type-checks.test' ,
39
- 'check-abstract.test' ,
40
- 'check-multiple-inheritance.test' ,
41
- 'check-super.test' ,
42
- 'check-modules.test' ,
43
- 'check-typevar-values.test' ,
44
- 'check-unsupported.test' ,
45
- 'check-unreachable-code.test' ,
46
- 'check-unions.test' ,
47
- 'check-isinstance.test' ,
48
- 'check-lists.test' ,
49
- 'check-namedtuple.test' ,
50
- 'check-narrowing.test' ,
51
- 'check-typeddict.test' ,
52
- 'check-type-aliases.test' ,
53
- 'check-ignore.test' ,
54
- 'check-type-promotion.test' ,
55
- 'check-semanal-error.test' ,
56
- 'check-flags.test' ,
57
- 'check-incremental.test' ,
58
- 'check-serialize.test' ,
59
- 'check-bound.test' ,
60
- 'check-optional.test' ,
61
- 'check-fastparse.test' ,
62
- 'check-warnings.test' ,
63
- 'check-async-await.test' ,
64
- 'check-newtype.test' ,
65
- 'check-class-namedtuple.test' ,
66
- 'check-selftype.test' ,
67
- 'check-python2.test' ,
68
- 'check-columns.test' ,
69
- 'check-functions.test' ,
70
- 'check-tuples.test' ,
71
- 'check-expressions.test' ,
72
- 'check-generic-subtyping.test' ,
73
- 'check-varargs.test' ,
74
- 'check-newsyntax.test' ,
75
- 'check-protocols.test' ,
76
- 'check-underscores.test' ,
77
- 'check-classvar.test' ,
78
- 'check-enum.test' ,
79
- 'check-incomplete-fixture.test' ,
80
- 'check-custom-plugin.test' ,
81
- 'check-default-plugin.test' ,
82
- 'check-attr.test' ,
83
- 'check-ctypes.test' ,
84
- 'check-dataclasses.test' ,
85
- 'check-final.test' ,
86
- 'check-redefine.test' ,
87
- 'check-literal.test' ,
88
- 'check-newsemanal.test' ,
89
- 'check-inline-config.test' ,
90
- 'check-reports.test' ,
91
- 'check-errorcodes.test' ,
92
- 'check-annotated.test' ,
93
- 'check-parameter-specification.test' ,
94
- 'check-generic-alias.test' ,
95
- 'check-typeguard.test' ,
96
- 'check-functools.test' ,
97
- 'check-singledispatch.test' ,
98
- 'check-slots.test' ,
99
- 'check-formatting.test' ,
27
+ # 'check-basic.test',
28
+ # 'check-union-or-syntax.test',
29
+ # 'check-callable.test',
30
+ # 'check-classes.test',
31
+ # 'check-statements.test',
32
+ # 'check-generics.test',
33
+ # 'check-dynamic-typing.test',
34
+ # 'check-inference.test',
35
+ # 'check-inference-context.test',
36
+ # 'check-kwargs.test',
37
+ # 'check-overloading.test',
38
+ # 'check-type-checks.test',
39
+ # 'check-abstract.test',
40
+ # 'check-multiple-inheritance.test',
41
+ # 'check-super.test',
42
+ # 'check-modules.test',
43
+ 'check-modules-fast.test' ,
44
+ # 'check-typevar-values.test',
45
+ # 'check-unsupported.test',
46
+ # 'check-unreachable-code.test',
47
+ # 'check-unions.test',
48
+ # 'check-isinstance.test',
49
+ # 'check-lists.test',
50
+ # 'check-namedtuple.test',
51
+ # 'check-narrowing.test',
52
+ # 'check-typeddict.test',
53
+ # 'check-type-aliases.test',
54
+ # 'check-ignore.test',
55
+ # 'check-type-promotion.test',
56
+ # 'check-semanal-error.test',
57
+ # 'check-flags.test',
58
+ # 'check-incremental.test',
59
+ # 'check-serialize.test',
60
+ # 'check-bound.test',
61
+ # 'check-optional.test',
62
+ # 'check-fastparse.test',
63
+ # 'check-warnings.test',
64
+ # 'check-async-await.test',
65
+ # 'check-newtype.test',
66
+ # 'check-class-namedtuple.test',
67
+ # 'check-selftype.test',
68
+ # 'check-python2.test',
69
+ # 'check-columns.test',
70
+ # 'check-functions.test',
71
+ # 'check-tuples.test',
72
+ # 'check-expressions.test',
73
+ # 'check-generic-subtyping.test',
74
+ # 'check-varargs.test',
75
+ # 'check-newsyntax.test',
76
+ # 'check-protocols.test',
77
+ # 'check-underscores.test',
78
+ # 'check-classvar.test',
79
+ # 'check-enum.test',
80
+ # 'check-incomplete-fixture.test',
81
+ # 'check-custom-plugin.test',
82
+ # 'check-default-plugin.test',
83
+ # 'check-attr.test',
84
+ # 'check-ctypes.test',
85
+ # 'check-dataclasses.test',
86
+ # 'check-final.test',
87
+ # 'check-redefine.test',
88
+ # 'check-literal.test',
89
+ # 'check-newsemanal.test',
90
+ # 'check-inline-config.test',
91
+ # 'check-reports.test',
92
+ # 'check-errorcodes.test',
93
+ # 'check-annotated.test',
94
+ # 'check-parameter-specification.test',
95
+ # 'check-generic-alias.test',
96
+ # 'check-typeguard.test',
97
+ # 'check-functools.test',
98
+ # 'check-singledispatch.test',
99
+ # 'check-slots.test',
100
+ # 'check-formatting.test',
100
101
]
101
102
102
103
# Tests that use Python 3.8-only AST features (like expression-scoped ignores):
111
112
if sys .platform in ('darwin' , 'win32' ):
112
113
typecheck_files .extend (['check-modules-case.test' ])
113
114
115
+ # some test cases are run multiple times with various combinations of extra flags
116
+ EXTRA_FLAGS = {
117
+ 'check-modules.test' : [['--fast-module-lookup' ]],
118
+ 'check-modules-fast.test' : [['--fast-module-lookup' ]],
119
+ 'check-modules-case.test' : [['--fast-module-lookup' ]],
120
+ }
121
+
114
122
115
123
class TypeCheckSuite (DataSuite ):
116
124
files = typecheck_files
@@ -138,10 +146,13 @@ def run_case(self, testcase: DataDrivenTestCase) -> None:
138
146
self .run_case_once (testcase , ops , step )
139
147
else :
140
148
self .run_case_once (testcase )
149
+ for extra_flags in EXTRA_FLAGS .get (os .path .basename (testcase .file ), []):
150
+ self .run_case_once (testcase , extra_flags = extra_flags )
141
151
142
152
def run_case_once (self , testcase : DataDrivenTestCase ,
143
153
operations : List [FileOperation ] = [],
144
- incremental_step : int = 0 ) -> None :
154
+ incremental_step : int = 0 ,
155
+ extra_flags : List [str ] = []) -> None :
145
156
original_program_text = '\n ' .join (testcase .input )
146
157
module_data = self .parse_module (original_program_text , incremental_step )
147
158
@@ -162,7 +173,8 @@ def run_case_once(self, testcase: DataDrivenTestCase,
162
173
perform_file_operations (operations )
163
174
164
175
# Parse options after moving files (in case mypy.ini is being moved).
165
- options = parse_options (original_program_text , testcase , incremental_step )
176
+ options = parse_options (original_program_text , testcase , incremental_step ,
177
+ extra_flags = extra_flags )
166
178
options .use_builtins_fixtures = True
167
179
options .show_traceback = True
168
180
0 commit comments