Commit cdf5f0de authored by Stefan Behnel's avatar Stefan Behnel

instead of parsing test tags twice, pass them into test class

parent 795c0632
...@@ -523,18 +523,18 @@ class TestBuilder(object): ...@@ -523,18 +523,18 @@ class TestBuilder(object):
elif 'no-cpp' in tags['tag'] and 'cpp' in self.languages: elif 'no-cpp' in tags['tag'] and 'cpp' in self.languages:
languages = list(languages) languages = list(languages)
languages.remove('cpp') languages.remove('cpp')
tests = [ self.build_test(test_class, path, workdir, module, tests = [ self.build_test(test_class, path, workdir, module, tags,
language, expect_errors, warning_errors) language, expect_errors, warning_errors)
for language in languages ] for language in languages ]
return tests return tests
def build_test(self, test_class, path, workdir, module, def build_test(self, test_class, path, workdir, module, tags,
language, expect_errors, warning_errors): language, expect_errors, warning_errors):
language_workdir = os.path.join(workdir, language) language_workdir = os.path.join(workdir, language)
if not os.path.exists(language_workdir): if not os.path.exists(language_workdir):
os.makedirs(language_workdir) os.makedirs(language_workdir)
workdir = os.path.join(language_workdir, module) workdir = os.path.join(language_workdir, module)
return test_class(path, workdir, module, return test_class(path, workdir, module, tags,
language=language, language=language,
expect_errors=expect_errors, expect_errors=expect_errors,
annotate=self.annotate, annotate=self.annotate,
...@@ -547,11 +547,12 @@ class TestBuilder(object): ...@@ -547,11 +547,12 @@ class TestBuilder(object):
warning_errors=warning_errors) warning_errors=warning_errors)
class CythonCompileTestCase(unittest.TestCase): class CythonCompileTestCase(unittest.TestCase):
def __init__(self, test_directory, workdir, module, language='c', def __init__(self, test_directory, workdir, module, tags, language='c',
expect_errors=False, annotate=False, cleanup_workdir=True, expect_errors=False, annotate=False, cleanup_workdir=True,
cleanup_sharedlibs=True, cleanup_failures=True, cython_only=False, cleanup_sharedlibs=True, cleanup_failures=True, cython_only=False,
fork=True, language_level=2, warning_errors=False): fork=True, language_level=2, warning_errors=False):
self.test_directory = test_directory self.test_directory = test_directory
self.tags = tags
self.workdir = workdir self.workdir = workdir
self.module = module self.module = module
self.language = language self.language = language
...@@ -725,12 +726,6 @@ class CythonCompileTestCase(unittest.TestCase): ...@@ -725,12 +726,6 @@ class CythonCompileTestCase(unittest.TestCase):
def run_distutils(self, test_directory, module, workdir, incdir, def run_distutils(self, test_directory, module, workdir, incdir,
extra_extension_args=None): extra_extension_args=None):
original_source = self.find_module_source_file(
os.path.join(test_directory, module + '.pyx'))
try:
tags = parse_tags(original_source)
except IOError:
tags = {}
cwd = os.getcwd() cwd = os.getcwd()
os.chdir(workdir) os.chdir(workdir)
try: try:
...@@ -770,7 +765,7 @@ class CythonCompileTestCase(unittest.TestCase): ...@@ -770,7 +765,7 @@ class CythonCompileTestCase(unittest.TestCase):
del EXT_EXTRAS[matcher] del EXT_EXTRAS[matcher]
matcher = string_selector(matcher) matcher = string_selector(matcher)
EXT_EXTRAS[matcher] = fixer EXT_EXTRAS[matcher] = fixer
if matcher(module, tags): if matcher(module, self.tags):
newext = fixer(extension) newext = fixer(extension)
if newext is EXCLUDE_EXT: if newext is EXCLUDE_EXT:
return return
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment