| Index: tests/selenium/test_runner.py
|
| ===================================================================
|
| --- tests/selenium/test_runner.py (revision 27371)
|
| +++ tests/selenium/test_runner.py (working copy)
|
| @@ -74,10 +74,10 @@
|
| """A specialized class that prints formatted text results to a stream.
|
|
|
| """
|
| - separator1 = "=" * 70
|
| - separator2 = "-" * 70
|
| + separator1 = "=" * 30
|
| + separator2 = "-" * 30
|
|
|
| - def __init__(self, stream, browser):
|
| + def __init__(self, stream, browser, verbose):
|
| unittest.TestResult.__init__(self)
|
| self.stream = stream
|
| # Dictionary of start times
|
| @@ -85,6 +85,7 @@
|
| # Dictionary of results
|
| self.results = {}
|
| self.browser = browser
|
| + self.verbose = verbose
|
|
|
| def getDescription(self, test):
|
| """Gets description of test."""
|
| @@ -97,10 +98,11 @@
|
| # Default testresult if success not called
|
| self.results[test] = "FAIL"
|
| unittest.TestResult.startTest(self, test)
|
| - self.stream.writeln()
|
| - self.stream.writeln(self.separator2)
|
| - self.stream.write(self.getDescription(test))
|
| - self.stream.writeln(" ... ")
|
| + if self.verbose:
|
| + self.stream.writeln()
|
| + self.stream.writeln(self.separator2)
|
| + self.stream.write(self.getDescription(test))
|
| + self.stream.writeln(" ... ")
|
|
|
| def stopTest(self, test):
|
| """Called when test is ended."""
|
| @@ -108,6 +110,7 @@
|
| result = self.results[test]
|
| self.stream.writeln("SELENIUMRESULT %s <%s> [%.3fs]: %s"
|
| % (test, self.browser, time_taken, result))
|
| + self.printErrors()
|
|
|
| def addSuccess(self, test):
|
| """Adds success result to TestResult."""
|
| @@ -130,19 +133,21 @@
|
| self.testsRun += 1
|
| self.errors.append("No response from test")
|
|
|
| - self.stream.writeln()
|
| - self.stream.writeln(self.separator2)
|
| - self.stream.write(self.getDescription(test))
|
| - self.stream.writeln(" ... ")
|
| - self.stream.writeln("SELENIUMRESULT %s <%s> [?s]: FAIL (HUNG?)"
|
| + if self.verbose:
|
| + self.stream.writeln()
|
| + self.stream.writeln(self.separator2)
|
| + self.stream.write(self.getDescription(test))
|
| + self.stream.writeln(" ... ")
|
| + self.stream.writeln("SELENIUMRESULT %s <%s> [0s]: FAIL"
|
| % (test, self.browser))
|
| - self.stream.writeln()
|
| + self.stream.writeln("Test was aborted due to timeout")
|
|
|
| def printErrors(self):
|
| """Prints all errors and failures."""
|
| - self.stream.writeln()
|
| - self.printErrorList("ERROR", self.errors)
|
| - self.printErrorList("FAIL", self.failures)
|
| + if self.errors:
|
| + self.printErrorList("ERROR", self.errors)
|
| + if self.failures:
|
| + self.printErrorList("FAIL", self.failures)
|
|
|
| def printErrorList(self, flavour, errors):
|
| """Prints a given list of errors."""
|
| @@ -175,14 +180,15 @@
|
| test: the currently running test.
|
| browser: selenium_name of browser that will be tested.
|
| """
|
| - def __init__(self):
|
| + def __init__(self, verbose):
|
| threading.Thread.__init__(self)
|
| # This thread is a daemon so that the program can exit even if the
|
| # thread has not finished.
|
| self.setDaemon(True)
|
| self.completely_done_event = threading.Event()
|
| - self.test_copy = None
|
| + self.test = None
|
| self.browser = "default_browser"
|
| + self.verbose = verbose
|
|
|
| def IsCompletelyDone(self):
|
| """Returns true if this test runner is completely done."""
|
| @@ -206,15 +212,14 @@
|
| self.test = test
|
|
|
| stream = StringBuffer()
|
| - result = TestResult(stream, self.browser)
|
| + result = TestResult(stream, self.browser, self.verbose)
|
| startTime = time.time()
|
| test(result)
|
| stopTime = time.time()
|
| timeTaken = stopTime - startTime
|
| - result.printErrors()
|
| + if self.verbose:
|
| + result.printErrors()
|
| run = result.testsRun
|
| - stream.writeln("Took %.2fs" % timeTaken)
|
| - stream.writeln()
|
| return result
|
|
|
|
|
| @@ -229,8 +234,8 @@
|
| end_testing_event: event that occurs when we are guaranteed no more tests
|
| will be added to the queue.
|
| """
|
| - def __init__(self, pdiff_queue, result_queue, browser):
|
| - TestRunnerThread.__init__(self)
|
| + def __init__(self, pdiff_queue, result_queue, browser, verbose):
|
| + TestRunnerThread.__init__(self, verbose)
|
| self.pdiff_queue = pdiff_queue
|
| self.result_queue = result_queue
|
| self.browser = browser
|
| @@ -278,8 +283,8 @@
|
| diff test to the queue when the related selenium test passes.
|
| deadline: absolute time of when the test should be done.
|
| """
|
| - def __init__(self, sel_builder, browser, test_queue, pdiff_queue):
|
| - TestRunnerThread.__init__(self)
|
| + def __init__(self, sel_builder, browser, test_queue, pdiff_queue, verbose):
|
| + TestRunnerThread.__init__(self, verbose)
|
|
|
| # Synchronization.
|
| self.testing_event = threading.Event()
|
|
|