Mercurial > hg-stable
changeset 21445:092b16448994
run-tests: fail tests by raising an exception
When in unittest mode, Test.run() will now raise for all non-success
cases. This makes it behave like TestCase.run().
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 20 Apr 2014 14:34:03 -0700 |
parents | 2b7d364690d8 |
children | 9a3b4f795f62 |
files | tests/run-tests.py |
diffstat | 1 files changed, 7 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/run-tests.py Sun Apr 20 14:32:03 2014 -0700 +++ b/tests/run-tests.py Sun Apr 20 14:34:03 2014 -0700 @@ -607,6 +607,10 @@ if self._unittest: if warned: raise WarnTest(msg) + else: + # unittest differentiates between errored and failed. + # Failed is denoted by AssertionError (by default at least). + raise AssertionError(msg) return warned and '~' or '!', self.name, msg @@ -1347,8 +1351,6 @@ # Need to stash away the TestResult since we do custom things # with it. def run(self, result): - self._result = result - try: self.runTest() except KeyboardInterrupt: @@ -1369,13 +1371,9 @@ def runTest(self): code, tname, msg = t.run() - if code == '!': - self._result.failures.append((self, msg)) - # Codes handled in run(). - elif code in ('.', 's', 'i', '~'): - pass - else: - self.fail('Unknown test result code: %s' % code) + # All non-success conditions should be exceptions and should + # be caught in run(). + assert code == '.' # We need this proxy until tearDown() is implemented. def cleanup(self):