run-tests: implement TestCase.run()
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 20 Apr 2014 14:19:59 -0700
changeset 21441 213339e9bada
parent 21440 ece127734db1
child 21442 867a1116be3c
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.
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()