Example #1
0
 def setUp(self):
     TestWithFakeExceptions.setUp(self)
     self.result_semaphore = threading.Semaphore(1)
     self.target = LoggingResult([])
     self.result1 = ThreadsafeForwardingResult(self.target,
         self.result_semaphore)
Example #2
0
 def test_stopTestRun(self):
     self.result1.stopTestRun()
     self.result2 = ThreadsafeForwardingResult(self.target,
         self.result_semaphore)
     self.result2.stopTestRun()
     self.assertEqual(["stopTestRun", "stopTestRun"], self.target._events)
Example #3
0
class TestThreadSafeForwardingResult(TestWithFakeExceptions):
    """Tests for `TestThreadSafeForwardingResult`."""

    def setUp(self):
        TestWithFakeExceptions.setUp(self)
        self.result_semaphore = threading.Semaphore(1)
        self.target = LoggingResult([])
        self.result1 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)

    def test_nonforwarding_methods(self):
        # startTest and stopTest are not forwarded because they need to be
        # batched.
        self.result1.startTest(self)
        self.result1.stopTest(self)
        self.assertEqual([], self.target._events)

    def test_startTestRun(self):
        self.result1.startTestRun()
        self.result2 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)
        self.result2.startTestRun()
        self.assertEqual(["startTestRun", "startTestRun"], self.target._events)

    def test_stopTestRun(self):
        self.result1.stopTestRun()
        self.result2 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)
        self.result2.stopTestRun()
        self.assertEqual(["stopTestRun", "stopTestRun"], self.target._events)

    def test_forwarding_methods(self):
        # error, failure, skip and success are forwarded in batches.
        exc_info1 = self.makeExceptionInfo(RuntimeError, 'error')
        starttime1 = datetime.datetime.utcfromtimestamp(1.489)
        endtime1 = datetime.datetime.utcfromtimestamp(51.476)
        self.result1.time(starttime1)
        self.result1.startTest(self)
        self.result1.time(endtime1)
        self.result1.addError(self, exc_info1)
        exc_info2 = self.makeExceptionInfo(AssertionError, 'failure')
        starttime2 = datetime.datetime.utcfromtimestamp(2.489)
        endtime2 = datetime.datetime.utcfromtimestamp(3.476)
        self.result1.time(starttime2)
        self.result1.startTest(self)
        self.result1.time(endtime2)
        self.result1.addFailure(self, exc_info2)
        reason = _u("Skipped for some reason")
        starttime3 = datetime.datetime.utcfromtimestamp(4.489)
        endtime3 = datetime.datetime.utcfromtimestamp(5.476)
        self.result1.time(starttime3)
        self.result1.startTest(self)
        self.result1.time(endtime3)
        self.result1.addSkip(self, reason)
        starttime4 = datetime.datetime.utcfromtimestamp(6.489)
        endtime4 = datetime.datetime.utcfromtimestamp(7.476)
        self.result1.time(starttime4)
        self.result1.startTest(self)
        self.result1.time(endtime4)
        self.result1.addSuccess(self)
        self.assertEqual([
            ('time', starttime1),
            ('startTest', self),
            ('time', endtime1),
            ('addError', self, exc_info1),
            ('stopTest', self),
            ('time', starttime2),
            ('startTest', self),
            ('time', endtime2),
            ('addFailure', self, exc_info2),
            ('stopTest', self),
            ('time', starttime3),
            ('startTest', self),
            ('time', endtime3),
            ('addSkip', self, reason),
            ('stopTest', self),
            ('time', starttime4),
            ('startTest', self),
            ('time', endtime4),
            ('addSuccess', self),
            ('stopTest', self),
            ], self.target._events)
 def test_stopTestRun(self):
     self.result1.stopTestRun()
     self.result2 = ThreadsafeForwardingResult(self.target,
         self.result_semaphore)
     self.result2.stopTestRun()
     self.assertEqual(["stopTestRun", "stopTestRun"], self.target._events)
 def setUp(self):
     TestWithFakeExceptions.setUp(self)
     self.result_semaphore = threading.Semaphore(1)
     self.target = LoggingResult([])
     self.result1 = ThreadsafeForwardingResult(self.target,
         self.result_semaphore)
class TestThreadSafeForwardingResult(TestWithFakeExceptions):
    """Tests for `TestThreadSafeForwardingResult`."""

    def setUp(self):
        TestWithFakeExceptions.setUp(self)
        self.result_semaphore = threading.Semaphore(1)
        self.target = LoggingResult([])
        self.result1 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)

    def test_nonforwarding_methods(self):
        # startTest and stopTest are not forwarded because they need to be
        # batched.
        self.result1.startTest(self)
        self.result1.stopTest(self)
        self.assertEqual([], self.target._events)

    def test_startTestRun(self):
        self.result1.startTestRun()
        self.result2 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)
        self.result2.startTestRun()
        self.assertEqual(["startTestRun", "startTestRun"], self.target._events)

    def test_stopTestRun(self):
        self.result1.stopTestRun()
        self.result2 = ThreadsafeForwardingResult(self.target,
            self.result_semaphore)
        self.result2.stopTestRun()
        self.assertEqual(["stopTestRun", "stopTestRun"], self.target._events)

    def test_forwarding_methods(self):
        # error, failure, skip and success are forwarded in batches.
        exc_info1 = self.makeExceptionInfo(RuntimeError, 'error')
        starttime1 = datetime.datetime.utcfromtimestamp(1.489)
        endtime1 = datetime.datetime.utcfromtimestamp(51.476)
        self.result1.time(starttime1)
        self.result1.startTest(self)
        self.result1.time(endtime1)
        self.result1.addError(self, exc_info1)
        exc_info2 = self.makeExceptionInfo(AssertionError, 'failure')
        starttime2 = datetime.datetime.utcfromtimestamp(2.489)
        endtime2 = datetime.datetime.utcfromtimestamp(3.476)
        self.result1.time(starttime2)
        self.result1.startTest(self)
        self.result1.time(endtime2)
        self.result1.addFailure(self, exc_info2)
        reason = _u("Skipped for some reason")
        starttime3 = datetime.datetime.utcfromtimestamp(4.489)
        endtime3 = datetime.datetime.utcfromtimestamp(5.476)
        self.result1.time(starttime3)
        self.result1.startTest(self)
        self.result1.time(endtime3)
        self.result1.addSkip(self, reason)
        starttime4 = datetime.datetime.utcfromtimestamp(6.489)
        endtime4 = datetime.datetime.utcfromtimestamp(7.476)
        self.result1.time(starttime4)
        self.result1.startTest(self)
        self.result1.time(endtime4)
        self.result1.addSuccess(self)
        self.assertEqual([
            ('time', starttime1),
            ('startTest', self),
            ('time', endtime1),
            ('addError', self, exc_info1),
            ('stopTest', self),
            ('time', starttime2),
            ('startTest', self),
            ('time', endtime2),
            ('addFailure', self, exc_info2),
            ('stopTest', self),
            ('time', starttime3),
            ('startTest', self),
            ('time', endtime3),
            ('addSkip', self, reason),
            ('stopTest', self),
            ('time', starttime4),
            ('startTest', self),
            ('time', endtime4),
            ('addSuccess', self),
            ('stopTest', self),
            ], self.target._events)
 def makeResult(self):
     result_semaphore = threading.Semaphore(1)
     target = TestResult()
     return ThreadsafeForwardingResult(target, result_semaphore)