def test_time_taken(self): result = SummarizingResult() now = datetime.now() result.startTestRun() result.status(timestamp=now) result.status(timestamp=now + timedelta(seconds=5)) result.stopTestRun() self.assertEqual(5.0, result.get_time_taken())
def _get_previous_summary(self): if self._previous_run is None: return None previous_summary = SummarizingResult() previous_summary.startTestRun() test = self._previous_run.get_test() test.run(previous_summary) previous_summary.stopTestRun() return previous_summary
def __init__(self, ui, get_id, previous_run=None): """Construct an `AbstractUITestResult`. :param ui: The UI this result is associated with. :param get_id: A nullary callable that returns the id of the test run. """ super(BaseUITestResult, self).__init__() self.ui = ui self.get_id = get_id self._previous_run = previous_run self._summary = SummarizingResult()
def test_tests_run(self): result = SummarizingResult() result.startTestRun() for i in range(5): result.status(test_id='foo', test_status='success') result.stopTestRun() self.assertEqual(5, result.testsRun)
def test_empty(self): result = SummarizingResult() result.startTestRun() result.stopTestRun() self.assertEqual(0, result.testsRun) self.assertEqual(0, result.get_num_failures()) self.assertIs(None, result.get_time_taken())
def test_num_failures(self): result = SummarizingResult() result.startTestRun() try: 1/0 except ZeroDivisionError: error = sys.exc_info() result.status(test_id='foo', test_status='fail') result.status(test_id='foo', test_status='fail') result.stopTestRun() self.assertEqual(2, result.get_num_failures())
def test_tests_run(self): result = SummarizingResult() result.startTestRun() for i in range(5): result.status(test_id="foo", test_status="success") result.stopTestRun() self.assertEqual(5, result.testsRun)
def test_num_failures(self): result = SummarizingResult() result.startTestRun() try: 1 / 0 except ZeroDivisionError: error = sys.exc_info() result.status(test_id="foo", test_status="fail") result.status(test_id="foo", test_status="fail") result.stopTestRun() self.assertEqual(2, result.get_num_failures())
class BaseUITestResult(StreamResult): """An abstract test result used with the UI. AbstractUI.make_result probably wants to return an object like this. """ def __init__(self, ui, get_id, previous_run=None): """Construct an `AbstractUITestResult`. :param ui: The UI this result is associated with. :param get_id: A nullary callable that returns the id of the test run. """ super(BaseUITestResult, self).__init__() self.ui = ui self.get_id = get_id self._previous_run = previous_run self._summary = SummarizingResult() def _get_previous_summary(self): if self._previous_run is None: return None previous_summary = SummarizingResult() previous_summary.startTestRun() test = self._previous_run.get_test() test.run(previous_summary) previous_summary.stopTestRun() return previous_summary def _output_summary(self, run_id): """Output a test run. :param run_id: The run id. """ if self.ui.options.quiet: return time = self._summary.get_time_taken() time_delta = None num_tests_run_delta = None num_failures_delta = None values = [('id', run_id, None)] failures = self._summary.get_num_failures() previous_summary = self._get_previous_summary() if failures: if previous_summary: num_failures_delta = failures - previous_summary.get_num_failures() values.append(('failures', failures, num_failures_delta)) if previous_summary: num_tests_run_delta = self._summary.testsRun - previous_summary.testsRun if time: previous_time_taken = previous_summary.get_time_taken() if previous_time_taken: time_delta = time - previous_time_taken skips = len(self._summary.skipped) if skips: values.append(('skips', skips, None)) self.ui.output_summary( not bool(failures), self._summary.testsRun, num_tests_run_delta, time, time_delta, values) def startTestRun(self): super(BaseUITestResult, self).startTestRun() self._summary.startTestRun() def stopTestRun(self): super(BaseUITestResult, self).stopTestRun() run_id = self.get_id() self._summary.stopTestRun() self._output_summary(run_id) def status(self, *args, **kwargs): self._summary.status(*args, **kwargs)
class BaseUITestResult(StreamResult): """An abstract test result used with the UI. AbstractUI.make_result probably wants to return an object like this. """ def __init__(self, ui, get_id, previous_run=None): """Construct an `AbstractUITestResult`. :param ui: The UI this result is associated with. :param get_id: A nullary callable that returns the id of the test run. """ super(BaseUITestResult, self).__init__() self.ui = ui self.get_id = get_id self._previous_run = previous_run self._summary = SummarizingResult() def _get_previous_summary(self): if self._previous_run is None: return None previous_summary = SummarizingResult() previous_summary.startTestRun() test = self._previous_run.get_test() test.run(previous_summary) previous_summary.stopTestRun() return previous_summary def _output_summary(self, run_id): """Output a test run. :param run_id: The run id. """ if self.ui.options.quiet: return time = self._summary.get_time_taken() time_delta = None num_tests_run_delta = None num_failures_delta = None values = [('id', run_id, None)] failures = self._summary.get_num_failures() previous_summary = self._get_previous_summary() if failures: if previous_summary: num_failures_delta = failures - previous_summary.get_num_failures( ) values.append(('failures', failures, num_failures_delta)) if previous_summary: num_tests_run_delta = self._summary.testsRun - previous_summary.testsRun if time: previous_time_taken = previous_summary.get_time_taken() if previous_time_taken: time_delta = time - previous_time_taken skips = len(self._summary.skipped) if skips: values.append(('skips', skips, None)) self.ui.output_summary(not bool(failures), self._summary.testsRun, num_tests_run_delta, time, time_delta, values) def startTestRun(self): super(BaseUITestResult, self).startTestRun() self._summary.startTestRun() def stopTestRun(self): super(BaseUITestResult, self).stopTestRun() run_id = self.get_id() self._summary.stopTestRun() self._output_summary(run_id) def status(self, *args, **kwargs): self._summary.status(*args, **kwargs)