Ejemplo n.º 1
0
 def test_standard_behavior(self):
     deferred = TimedDeferredLock()
     yield deferred.acquire()
     self.assertTrue(deferred.locked)
     self.assertEqual(len(deferred.waiting), 0)
     second_acquire = deferred.acquire()
     self.assertTrue(deferred.locked)
     self.assertEqual(len(deferred.waiting), 1)
     self.assertFalse(second_acquire.called)
     yield deferred.release()
     self.assertTrue(second_acquire.called)
     self.assertTrue(deferred.locked)
     self.assertEqual(len(deferred.waiting), 0)
     yield deferred.release()
     self.assertFalse(deferred.locked)
     self.assertEqual(len(deferred.waiting), 0)
Ejemplo n.º 2
0
    def test_cancel_timeout(self):
        deferred = TimedDeferredLock()

        # Mock out the parts that will leak a Deferred object (which
        # will cause the tests to fail)
        with nested(
            patch.object(reactor, "callLater"),
            patch.object(deferred, "_cancel_timeout"),
        ) as (callLater, cancel_timeout):
            yield deferred.acquire()
            deferred.acquire(10)
            yield deferred.release()

        self.assertEqual(callLater.call_count, 1)
        timeout, timeout_method, finished = callLater.mock_calls[0][1]
        self.assertEqual(timeout, 10)
        self.assertIs(
            timeout_method.im_func.func_name,
            deferred._timeout.im_func.func_name)
        self.assertIsInstance(finished, Deferred)