diff options
Diffstat (limited to 'python')
| -rwxr-xr-x | python/subunit/run.py | 6 | ||||
| -rw-r--r-- | python/subunit/tests/test_run.py | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/python/subunit/run.py b/python/subunit/run.py index cf9cc01..5bf1db2 100755 --- a/python/subunit/run.py +++ b/python/subunit/run.py @@ -70,9 +70,13 @@ class SubunitTestRunner(object): result.stopTestRun() return result - def list(self, test): + def list(self, test, loader=None): "List the test." result, errors = self._list(test) + if loader is not None: + # We were called with the updated API by testtools.run, so look for + # errors on the loader, not the test list result. + errors = loader.errors if errors: failed_descr = '\n'.join(errors).encode('utf8') result.status(file_name="import errors", runnable=False, diff --git a/python/subunit/tests/test_run.py b/python/subunit/tests/test_run.py index de9b094..3339a82 100644 --- a/python/subunit/tests/test_run.py +++ b/python/subunit/tests/test_run.py @@ -65,6 +65,18 @@ class TestSubunitTestRunner(TestCase): exc = self.assertRaises(SystemExit, runner.list, None) self.assertEqual((2,), exc.args) + def test_list_includes_loader_errors(self): + bytestream = io.BytesIO() + runner = SubunitTestRunner(stream=bytestream) + def list_test(test): + return [], [] + class Loader(object): + errors = ['failed import'] + loader = Loader() + self.patch(run, 'list_test', list_test) + exc = self.assertRaises(SystemExit, runner.list, None, loader=loader) + self.assertEqual((2,), exc.args) + class FailingTest(TestCase): def test_fail(self): 1/0 |
