6
6
7
7
from mypy import build
8
8
from mypy .build import BuildSource
9
- from mypy .myunit import Suite
10
9
from mypy .test .helpers import (
11
10
assert_string_arrays_equal , normalize_error_messages , testfile_pyversion ,
12
11
)
13
- from mypy .test .data import parse_test_cases , DataDrivenTestCase
12
+ from mypy .test .data import parse_test_cases , DataDrivenTestCase , DataSuite
14
13
from mypy .test .config import test_data_prefix , test_temp_dir
15
14
from mypy .errors import CompileError
16
15
from mypy .nodes import TypeInfo
@@ -42,8 +41,9 @@ def get_semanal_options() -> Options:
42
41
return options
43
42
44
43
45
- class SemAnalSuite (Suite ):
46
- def cases (self ) -> List [DataDrivenTestCase ]:
44
+ class SemAnalSuite (DataSuite ):
45
+ @classmethod
46
+ def cases (cls ) -> List [DataDrivenTestCase ]:
47
47
c = [] # type: List[DataDrivenTestCase]
48
48
for f in semanal_files :
49
49
c += parse_test_cases (os .path .join (test_data_prefix , f ),
@@ -53,6 +53,9 @@ def cases(self) -> List[DataDrivenTestCase]:
53
53
native_sep = True )
54
54
return c
55
55
56
+ def run_case (self , testcase : DataDrivenTestCase ) -> None :
57
+ test_semanal (testcase )
58
+
56
59
57
60
def test_semanal (testcase : DataDrivenTestCase ) -> None :
58
61
"""Perform a semantic analysis test case.
@@ -102,15 +105,19 @@ def test_semanal(testcase: DataDrivenTestCase) -> None:
102
105
semanal_error_files = ['semanal-errors.test' ]
103
106
104
107
105
- class SemAnalErrorSuite (Suite ):
106
- def cases (self ) -> List [DataDrivenTestCase ]:
108
+ class SemAnalErrorSuite (DataSuite ):
109
+ @classmethod
110
+ def cases (cls ) -> List [DataDrivenTestCase ]:
107
111
# Read test cases from test case description files.
108
112
c = [] # type: List[DataDrivenTestCase]
109
113
for f in semanal_error_files :
110
114
c += parse_test_cases (os .path .join (test_data_prefix , f ),
111
115
test_semanal_error , test_temp_dir , optional_out = True )
112
116
return c
113
117
118
+ def run_case (self , testcase : DataDrivenTestCase ) -> None :
119
+ test_semanal_error (testcase )
120
+
114
121
115
122
def test_semanal_error (testcase : DataDrivenTestCase ) -> None :
116
123
"""Perform a test case."""
@@ -137,15 +144,16 @@ def test_semanal_error(testcase: DataDrivenTestCase) -> None:
137
144
semanal_symtable_files = ['semanal-symtable.test' ]
138
145
139
146
140
- class SemAnalSymtableSuite (Suite ):
141
- def cases (self ) -> List [DataDrivenTestCase ]:
147
+ class SemAnalSymtableSuite (DataSuite ):
148
+ @classmethod
149
+ def cases (cls ) -> List [DataDrivenTestCase ]:
142
150
c = [] # type: List[DataDrivenTestCase]
143
151
for f in semanal_symtable_files :
144
152
c += parse_test_cases (os .path .join (test_data_prefix , f ),
145
- self . run_test , test_temp_dir )
153
+ None , test_temp_dir )
146
154
return c
147
155
148
- def run_test (self , testcase : DataDrivenTestCase ) -> None :
156
+ def run_case (self , testcase : DataDrivenTestCase ) -> None :
149
157
"""Perform a test case."""
150
158
try :
151
159
# Build test case input.
@@ -175,16 +183,17 @@ def run_test(self, testcase: DataDrivenTestCase) -> None:
175
183
semanal_typeinfo_files = ['semanal-typeinfo.test' ]
176
184
177
185
178
- class SemAnalTypeInfoSuite (Suite ):
179
- def cases (self ) -> List [DataDrivenTestCase ]:
186
+ class SemAnalTypeInfoSuite (DataSuite ):
187
+ @classmethod
188
+ def cases (cls ) -> List [DataDrivenTestCase ]:
180
189
"""Test case descriptions"""
181
190
c = [] # type: List[DataDrivenTestCase]
182
191
for f in semanal_typeinfo_files :
183
192
c += parse_test_cases (os .path .join (test_data_prefix , f ),
184
- self . run_test , test_temp_dir )
193
+ None , test_temp_dir )
185
194
return c
186
195
187
- def run_test (self , testcase : DataDrivenTestCase ) -> None :
196
+ def run_case (self , testcase : DataDrivenTestCase ) -> None :
188
197
"""Perform a test case."""
189
198
try :
190
199
# Build test case input.
0 commit comments