示例#1
0
 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())
示例#2
0
 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
示例#3
0
    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()
示例#4
0
 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)
示例#5
0
 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())
示例#6
0
 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())
示例#7
0
 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)
示例#8
0
 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())
示例#9
0
 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())
示例#10
0
    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()
示例#11
0
 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
示例#12
0
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)
示例#13
0
 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())
示例#14
0
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)