Index: Tools/Scripts/webkitpy/thirdparty/unittest2/result.py |
diff --git a/Tools/Scripts/webkitpy/thirdparty/unittest2/result.py b/Tools/Scripts/webkitpy/thirdparty/unittest2/result.py |
deleted file mode 100644 |
index b30ad2b426eced517f182afa7fcd18665429ad58..0000000000000000000000000000000000000000 |
--- a/Tools/Scripts/webkitpy/thirdparty/unittest2/result.py |
+++ /dev/null |
@@ -1,183 +0,0 @@ |
-"""Test result object""" |
- |
-import sys |
-import traceback |
-import unittest |
- |
-from StringIO import StringIO |
- |
-from unittest2 import util |
-from unittest2.compatibility import wraps |
- |
-__unittest = True |
- |
-def failfast(method): |
- @wraps(method) |
- def inner(self, *args, **kw): |
- if getattr(self, 'failfast', False): |
- self.stop() |
- return method(self, *args, **kw) |
- return inner |
- |
- |
-STDOUT_LINE = '\nStdout:\n%s' |
-STDERR_LINE = '\nStderr:\n%s' |
- |
-class TestResult(unittest.TestResult): |
- """Holder for test result information. |
- |
- Test results are automatically managed by the TestCase and TestSuite |
- classes, and do not need to be explicitly manipulated by writers of tests. |
- |
- Each instance holds the total number of tests run, and collections of |
- failures and errors that occurred among those test runs. The collections |
- contain tuples of (testcase, exceptioninfo), where exceptioninfo is the |
- formatted traceback of the error that occurred. |
- """ |
- _previousTestClass = None |
- _moduleSetUpFailed = False |
- |
- def __init__(self): |
- self.failfast = False |
- self.failures = [] |
- self.errors = [] |
- self.testsRun = 0 |
- self.skipped = [] |
- self.expectedFailures = [] |
- self.unexpectedSuccesses = [] |
- self.shouldStop = False |
- self.buffer = False |
- self._stdout_buffer = None |
- self._stderr_buffer = None |
- self._original_stdout = sys.stdout |
- self._original_stderr = sys.stderr |
- self._mirrorOutput = False |
- |
- def startTest(self, test): |
- "Called when the given test is about to be run" |
- self.testsRun += 1 |
- self._mirrorOutput = False |
- if self.buffer: |
- if self._stderr_buffer is None: |
- self._stderr_buffer = StringIO() |
- self._stdout_buffer = StringIO() |
- sys.stdout = self._stdout_buffer |
- sys.stderr = self._stderr_buffer |
- |
- def startTestRun(self): |
- """Called once before any tests are executed. |
- |
- See startTest for a method called before each test. |
- """ |
- |
- def stopTest(self, test): |
- """Called when the given test has been run""" |
- if self.buffer: |
- if self._mirrorOutput: |
- output = sys.stdout.getvalue() |
- error = sys.stderr.getvalue() |
- if output: |
- if not output.endswith('\n'): |
- output += '\n' |
- self._original_stdout.write(STDOUT_LINE % output) |
- if error: |
- if not error.endswith('\n'): |
- error += '\n' |
- self._original_stderr.write(STDERR_LINE % error) |
- |
- sys.stdout = self._original_stdout |
- sys.stderr = self._original_stderr |
- self._stdout_buffer.seek(0) |
- self._stdout_buffer.truncate() |
- self._stderr_buffer.seek(0) |
- self._stderr_buffer.truncate() |
- self._mirrorOutput = False |
- |
- |
- def stopTestRun(self): |
- """Called once after all tests are executed. |
- |
- See stopTest for a method called after each test. |
- """ |
- |
- @failfast |
- def addError(self, test, err): |
- """Called when an error has occurred. 'err' is a tuple of values as |
- returned by sys.exc_info(). |
- """ |
- self.errors.append((test, self._exc_info_to_string(err, test))) |
- self._mirrorOutput = True |
- |
- @failfast |
- def addFailure(self, test, err): |
- """Called when an error has occurred. 'err' is a tuple of values as |
- returned by sys.exc_info().""" |
- self.failures.append((test, self._exc_info_to_string(err, test))) |
- self._mirrorOutput = True |
- |
- def addSuccess(self, test): |
- "Called when a test has completed successfully" |
- pass |
- |
- def addSkip(self, test, reason): |
- """Called when a test is skipped.""" |
- self.skipped.append((test, reason)) |
- |
- def addExpectedFailure(self, test, err): |
- """Called when an expected failure/error occured.""" |
- self.expectedFailures.append( |
- (test, self._exc_info_to_string(err, test))) |
- |
- @failfast |
- def addUnexpectedSuccess(self, test): |
- """Called when a test was expected to fail, but succeed.""" |
- self.unexpectedSuccesses.append(test) |
- |
- def wasSuccessful(self): |
- "Tells whether or not this result was a success" |
- return (len(self.failures) + len(self.errors) == 0) |
- |
- def stop(self): |
- "Indicates that the tests should be aborted" |
- self.shouldStop = True |
- |
- def _exc_info_to_string(self, err, test): |
- """Converts a sys.exc_info()-style tuple of values into a string.""" |
- exctype, value, tb = err |
- # Skip test runner traceback levels |
- while tb and self._is_relevant_tb_level(tb): |
- tb = tb.tb_next |
- if exctype is test.failureException: |
- # Skip assert*() traceback levels |
- length = self._count_relevant_tb_levels(tb) |
- msgLines = traceback.format_exception(exctype, value, tb, length) |
- else: |
- msgLines = traceback.format_exception(exctype, value, tb) |
- |
- if self.buffer: |
- output = sys.stdout.getvalue() |
- error = sys.stderr.getvalue() |
- if output: |
- if not output.endswith('\n'): |
- output += '\n' |
- msgLines.append(STDOUT_LINE % output) |
- if error: |
- if not error.endswith('\n'): |
- error += '\n' |
- msgLines.append(STDERR_LINE % error) |
- return ''.join(msgLines) |
- |
- def _is_relevant_tb_level(self, tb): |
- return '__unittest' in tb.tb_frame.f_globals |
- |
- def _count_relevant_tb_levels(self, tb): |
- length = 0 |
- while tb and not self._is_relevant_tb_level(tb): |
- length += 1 |
- tb = tb.tb_next |
- return length |
- |
- def __repr__(self): |
- return "<%s run=%i errors=%i failures=%i>" % \ |
- (util.strclass(self.__class__), self.testsRun, len(self.errors), |
- len(self.failures)) |