diff --git a/conftest.py b/conftest.py index 2d2ad7a..13f971b 100644 --- a/conftest.py +++ b/conftest.py @@ -1,3 +1,4 @@ +import re import tempfile import shutil import logging @@ -36,12 +37,12 @@ def pytest_addoption(parser): def pytest_generate_tests(metafunc): - if 'normalizer_issue_file' in metafunc.fixturenames: + if 'normalizer_issue_case' in metafunc.fixturenames: base_dir = os.path.join(os.path.dirname(__file__), 'test', 'normalizer_issue_files') cases = list(colllect_normalizer_tests(base_dir)) metafunc.parametrize( - 'normalizer_issue_file', + 'normalizer_issue_case', cases, ids=[c.name for c in cases] ) @@ -55,6 +56,8 @@ class NormalizerIssueCase(object): def __init__(self, path): self.path = path self.name = os.path.basename(path) + match = re.search(r'python([\d.]+)\.py', self.name) + self.python_version = match and match.group(1) def colllect_normalizer_tests(base_dir): diff --git a/test/test_normalizer_issues_files.py b/test/test_normalizer_issues_files.py index 0cd610d..a06b86e 100644 --- a/test/test_normalizer_issues_files.py +++ b/test/test_normalizer_issues_files.py @@ -47,18 +47,19 @@ def collect_errors(code): yield WantedIssue(code[1:], l, column) -def test_normalizer_issue(normalizer_issue_file): +def test_normalizer_issue(normalizer_issue_case): def sort(issues): issues = sorted(issues, key=lambda i: (i.start_pos, i.code)) return ["(%s, %s): %s" % (i.start_pos[0], i.start_pos[1], i.code) for i in issues] - with open(normalizer_issue_file.path, 'rb') as f: + with open(normalizer_issue_case.path, 'rb') as f: code = source_to_unicode(f.read()) desired = sort(collect_errors(code)) - module = parso.parse(code) + grammar = parso.load_grammar(version=normalizer_issue_case.python_version) + module = grammar.parse(code) issues = module._get_normalizer_issues() actual = sort(issues)