##// END OF EJS Templates
run-tests: record skips by raising SkipTest...
Gregory Szorc -
r21442:867a1116 default
parent child Browse files
Show More
@@ -607,6 +607,9 b' class Test(object):'
607 return warned and '~' or '!', self.name, msg
607 return warned and '~' or '!', self.name, msg
608
608
609 def skip(self, msg):
609 def skip(self, msg):
610 if self._unittest:
611 raise SkipTest(msg)
612
610 if self._options.verbose:
613 if self._options.verbose:
611 log("\nSkipping %s: %s" % (self._path, msg))
614 log("\nSkipping %s: %s" % (self._path, msg))
612
615
@@ -979,6 +982,9 b' def run(cmd, wd, options, replacements, '
979
982
980 iolock = threading.Lock()
983 iolock = threading.Lock()
981
984
985 class SkipTest(Exception):
986 """Raised to indicate that a test is to be skipped."""
987
982 class TestResult(unittest._TextTestResult):
988 class TestResult(unittest._TextTestResult):
983 """Holds results when executing via unittest."""
989 """Holds results when executing via unittest."""
984 # Don't worry too much about accessing the non-public _TextTestResult.
990 # Don't worry too much about accessing the non-public _TextTestResult.
@@ -1334,6 +1340,8 b' class TestRunner(object):'
1334 self.runTest()
1340 self.runTest()
1335 except KeyboardInterrupt:
1341 except KeyboardInterrupt:
1336 raise
1342 raise
1343 except SkipTest, e:
1344 result.addSkip(self, str(e))
1337 except self.failureException:
1345 except self.failureException:
1338 result.addFailure(self, sys.exc_info())
1346 result.addFailure(self, sys.exc_info())
1339 except Exception:
1347 except Exception:
@@ -1348,13 +1356,11 b' class TestRunner(object):'
1348 self._result.failures.append((self, msg))
1356 self._result.failures.append((self, msg))
1349 elif code == '~':
1357 elif code == '~':
1350 self._result.addWarn(self, msg)
1358 self._result.addWarn(self, msg)
1351 elif code == '.':
1352 # Success is handled automatically by the built-in run().
1353 pass
1354 elif code == 's':
1355 self._result.addSkip(self, msg)
1356 elif code == 'i':
1359 elif code == 'i':
1357 self._result.addIgnore(self, msg)
1360 self._result.addIgnore(self, msg)
1361 # Codes handled in run().
1362 elif code in ('.', 's'):
1363 pass
1358 else:
1364 else:
1359 self.fail('Unknown test result code: %s' % code)
1365 self.fail('Unknown test result code: %s' % code)
1360
1366
General Comments 0
You need to be logged in to leave comments. Login now