diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2018-08-24 08:22:12 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2018-08-24 08:22:12 +0200 |
commit | 533aa3880f9afe3521e7ca5cec0f0edfbfabf6d0 (patch) | |
tree | 09cca4c952356d19f1593a70538cec9d82eb99a4 | |
parent | b1f7ef1174df5a3c8763540ddedf3730fc3e1342 (diff) | |
download | cython-533aa3880f9afe3521e7ca5cec0f0edfbfabf6d0.tar.gz |
Support test skipping also in run tests.
-rwxr-xr-x | runtests.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/runtests.py b/runtests.py index 2369a0b9b..9ee8b7114 100755 --- a/runtests.py +++ b/runtests.py @@ -65,6 +65,8 @@ except ImportError: try: from unittest import SkipTest except ImportError: + class SkipTest(Exception): # don't raise, only provided to allow except-ing it! + pass def skip_test(reason): print("Skipping test: %s" % reason) else: @@ -1025,7 +1027,7 @@ class CythonCompileTestCase(unittest.TestCase): newext = fixer(extension) if newext is EXCLUDE_EXT: return skip_test("Test '%s' excluded due to tags '%s'" % ( - self.name, ', '.join(self.tags))) + self.name, ', '.join(self.tags.get('tag', '')))) extension = newext or extension if self.language == 'cpp': extension.language = 'c++' @@ -1174,7 +1176,7 @@ class CythonRunTestCase(CythonCompileTestCase): try: self.success = False ext_so_path = self.runCompileTest() - failures, errors = len(result.failures), len(result.errors) + failures, errors, skipped = len(result.failures), len(result.errors), len(result.skipped) if not self.cython_only and ext_so_path is not None: self.run_tests(result, ext_so_path) if failures == len(result.failures) and errors == len(result.errors): @@ -1182,6 +1184,9 @@ class CythonRunTestCase(CythonCompileTestCase): self.success = True finally: check_thread_termination() + except SkipTest as exc: + result.addSkip(self, str(exc)) + result.stopTest(self) except Exception: result.addError(self, sys.exc_info()) result.stopTest(self) @@ -1363,17 +1368,18 @@ class PartialTestResult(_TextTestResult): def data(self): self.strip_error_results(self.failures) self.strip_error_results(self.errors) - return (self.failures, self.errors, self.testsRun, + return (self.failures, self.errors, self.skipped, self.testsRun, self.stream.getvalue()) def join_results(result, data): """Static method for merging the result back into the main result object. """ - failures, errors, tests_run, output = data + failures, errors, skipped, tests_run, output = data if output: result.stream.write(output) result.errors.extend(errors) + result.skipped.extend(skipped) result.failures.extend(failures) result.testsRun += tests_run |