summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/test/pyautolib/pyauto.py56
1 files changed, 55 insertions, 1 deletions
diff --git a/chrome/test/pyautolib/pyauto.py b/chrome/test/pyautolib/pyauto.py
index ee090ee..18fcf10 100644
--- a/chrome/test/pyautolib/pyauto.py
+++ b/chrome/test/pyautolib/pyauto.py
@@ -1348,6 +1348,60 @@ class PyUITestSuite(pyautolib.PyUITestSuiteBase, unittest.TestSuite):
pyautolib.PyUITestSuiteBase.__del__(self)
+class _GTestTextTestResult(unittest._TextTestResult):
+ """A test result class that can print formatted text results to a stream.
+
+ Results printed in conformance with gtest output format, like:
+ [ RUN ] autofill.AutoFillTest.testAutofillInvalid: "test desc."
+ [ OK ] autofill.AutoFillTest.testAutofillInvalid
+ [ RUN ] autofill.AutoFillTest.testFillProfile: "test desc."
+ [ OK ] autofill.AutoFillTest.testFillProfile
+ [ RUN ] autofill.AutoFillTest.testFillProfileCrazyCharacters: "Test."
+ [ OK ] autofill.AutoFillTest.testFillProfileCrazyCharacters
+ """
+ def __init__(self, stream, descriptions, verbosity):
+ unittest._TextTestResult.__init__(self, stream, descriptions, verbosity)
+
+ def _GetTestURI(self, test):
+ if sys.version_info[:2] <= (2, 4):
+ return '%s.%s' % (unittest._strclass(test.__class__),
+ test._TestCase__testMethodName)
+ return '%s.%s' % (unittest._strclass(test.__class__), test._testMethodName)
+
+ def getDescription(self, test):
+ return '%s: "%s"' % (self._GetTestURI(test), test.shortDescription())
+
+ def startTest(self, test):
+ unittest.TestResult.startTest(self, test)
+ self.stream.writeln('[ RUN ] %s' % self.getDescription(test))
+
+ def addSuccess(self, test):
+ unittest.TestResult.addSuccess(self, test)
+ self.stream.writeln('[ OK ] %s' % self._GetTestURI(test))
+
+ def addError(self, test, err):
+ unittest.TestResult.addError(self, test, err)
+ self.stream.writeln('[ ERROR ] %s' % self._GetTestURI(test))
+
+ def addFailure(self, test, err):
+ unittest.TestResult.addFailure(self, test, err)
+ self.stream.writeln('[ FAILED ] %s' % self._GetTestURI(test))
+
+
+class PyAutoTextTestRuner(unittest.TextTestRunner):
+ """Test Runner for PyAuto tests that displays results in textual format.
+
+ Results are displayed in conformance with gtest output.
+ """
+ def __init__(self, verbosity=1):
+ unittest.TextTestRunner.__init__(self,
+ stream=sys.stderr,
+ verbosity=verbosity)
+
+ def _makeResult(self):
+ return _GTestTextTestResult(self.stream, self.descriptions, self.verbosity)
+
+
# Implementation inspired from unittest.main()
class Main(object):
"""Main program for running PyAuto tests."""
@@ -1575,7 +1629,7 @@ class Main(object):
verbosity = 1
if self._options.verbose:
verbosity = 2
- result = unittest.TextTestRunner(verbosity=verbosity).run(pyauto_suite)
+ result = PyAutoTextTestRuner(verbosity=verbosity).run(pyauto_suite)
del loaded_tests # Need to destroy test cases before the suite
del pyauto_suite
sys.exit(not result.wasSuccessful())