# HG changeset patch # User Gregory Szorc # Date 1398028799 25200 # Node ID 213339e9bada98e941d902fa6765a2a89f6fcc64 # Parent ece127734db101fc9bbe7bc6fdef4467ca9b234c run-tests: implement TestCase.run() Simply wrapping TestCase.run() is not sufficient for robust results reporting because unittest in Python 2.4 does not know about things like skipped tests and reports them as success or failures instead of skips. We will reimplement TestCase.run() with knowledge and semantics present in modern Python releases. diff -r ece127734db1 -r 213339e9bada tests/run-tests.py --- a/tests/run-tests.py Sun Apr 20 14:04:37 2014 -0700 +++ b/tests/run-tests.py Sun Apr 20 14:19:59 2014 -0700 @@ -1330,7 +1330,16 @@ def run(self, result): self._result = result - return super(MercurialTest, self).run(result) + try: + self.runTest() + except KeyboardInterrupt: + raise + except self.failureException: + result.addFailure(self, sys.exc_info()) + except Exception: + result.addError(self, sys.exc_info()) + else: + result.addSuccess(self) def runTest(self): code, tname, msg = t.run()