Skip to content

Commit 74725ff

Browse files
elazarggvanrossum
authored andcommitted
Move testparse to pytest (#3780)
This is an item from #1673.
1 parent c87e413 commit 74725ff

File tree

8 files changed

+19
-15
lines changed

8 files changed

+19
-15
lines changed

mypy/test/data.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,9 @@ def repr_failure(self, excinfo: Any) -> str:
556556

557557

558558
class DataSuite:
559+
def __init__(self, *, update_data: bool) -> None:
560+
self.update_data = update_data
561+
559562
@classmethod
560563
def cases(cls) -> List[DataDrivenTestCase]:
561564
return []

mypy/test/testcheck.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@
8282

8383

8484
class TypeCheckSuite(DataSuite):
85-
def __init__(self, *, update_data: bool = False) -> None:
86-
self.update_data = update_data
8785

8886
@classmethod
8987
def cases(cls) -> List[DataDrivenTestCase]:

mypy/test/testdeps.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121

2222
class GetDependenciesSuite(DataSuite):
23-
def __init__(self, *, update_data: bool) -> None:
24-
pass
2523

2624
@classmethod
2725
def cases(cls) -> List[DataDrivenTestCase]:

mypy/test/testdiff.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121

2222
class ASTDiffSuite(DataSuite):
23-
def __init__(self, *, update_data: bool) -> None:
24-
pass
2523

2624
@classmethod
2725
def cases(cls) -> List[DataDrivenTestCase]:

mypy/test/testfinegrained.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@
3535

3636

3737
class FineGrainedSuite(DataSuite):
38-
def __init__(self, *, update_data: bool) -> None:
39-
pass
40-
4138
@classmethod
4239
def cases(cls) -> List[DataDrivenTestCase]:
4340
c = [] # type: List[DataDrivenTestCase]

mypy/test/testmerge.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
class ASTMergeSuite(DataSuite):
3939
def __init__(self, *, update_data: bool) -> None:
40+
super().__init__(update_data=update_data)
4041
self.str_conv = StrConv(show_ids=True)
4142
assert self.str_conv.id_mapper is not None
4243
self.id_mapper = self.str_conv.id_mapper # type: IdMapper

mypy/test/testparse.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,29 @@
77
from mypy import defaults
88
from mypy.myunit import Suite, AssertionFailure
99
from mypy.test.helpers import assert_string_arrays_equal
10-
from mypy.test.data import parse_test_cases, DataDrivenTestCase
10+
from mypy.test.data import parse_test_cases, DataDrivenTestCase, DataSuite
1111
from mypy.test import config
1212
from mypy.parse import parse
1313
from mypy.errors import CompileError
1414
from mypy.options import Options
1515

1616

17-
class ParserSuite(Suite):
17+
class ParserSuite(DataSuite):
1818
parse_files = ['parse.test',
1919
'parse-python2.test']
2020

21-
def cases(self) -> List[DataDrivenTestCase]:
21+
@classmethod
22+
def cases(cls) -> List[DataDrivenTestCase]:
2223
# The test case descriptions are stored in data files.
2324
c = [] # type: List[DataDrivenTestCase]
24-
for f in self.parse_files:
25+
for f in cls.parse_files:
2526
c += parse_test_cases(
2627
os.path.join(config.test_data_prefix, f), test_parser)
2728
return c
2829

30+
def run_case(self, testcase: DataDrivenTestCase) -> None:
31+
test_parser(testcase)
32+
2933

3034
def test_parser(testcase: DataDrivenTestCase) -> None:
3135
"""Perform a single parser test case.
@@ -57,13 +61,17 @@ def test_parser(testcase: DataDrivenTestCase) -> None:
5761
INPUT_FILE_NAME = 'file'
5862

5963

60-
class ParseErrorSuite(Suite):
61-
def cases(self) -> List[DataDrivenTestCase]:
64+
class ParseErrorSuite(DataSuite):
65+
@classmethod
66+
def cases(cls) -> List[DataDrivenTestCase]:
6267
# Test case descriptions are in an external file.
6368
return parse_test_cases(os.path.join(config.test_data_prefix,
6469
'parse-errors.test'),
6570
test_parse_error)
6671

72+
def run_case(self, testcase: DataDrivenTestCase) -> None:
73+
test_parse_error(testcase)
74+
6775

6876
def test_parse_error(testcase: DataDrivenTestCase) -> None:
6977
try:

runtests.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ def add_imports(driver: Driver) -> None:
204204
'testdiff',
205205
'testfinegrained',
206206
'testmerge',
207+
'testparse',
207208
]]
208209

209210

0 commit comments

Comments
 (0)