def test_runs_action_with_timer(self, name, timer_after_action): w = DeferWaiter() times = [] def action(): times.append(round(self.reactor.seconds(), 1)) h = RepeatedActionHandler( self.reactor, w, 1, action, start_timer_after_action_completes=timer_after_action) h.start() self.reactor.pump([0.1] * 35) self.assertEqual(times, [1.1, 2.1, 3.1]) h.stop() d = w.wait() self.assertTrue(d.called) yield d
def test_cancel_not_called(self): w = DeferWaiter() d1 = defer.Deferred() w.add(d1) w.cancel() d = w.wait() self.assertTrue(d.called) with self.assertRaises(defer.CancelledError): yield d1
def test_add_deferred_not_called_and_call_later(self): w = DeferWaiter() d1 = defer.Deferred() w.add(d1) self.assertTrue(w.has_waited()) d = w.wait() self.assertFalse(d.called) d1.callback(None) self.assertFalse(w.has_waited()) self.assertTrue(d.called)
def test_cancel_called(self): w = DeferWaiter() d1_waited = defer.Deferred() d1 = defer.succeed(None) d1.addCallback(lambda _: d1_waited) w.add(d1) w.cancel() d = w.wait() self.assertTrue(d.called) self.assertTrue(d1.called) self.assertTrue(d1_waited.called) with self.assertRaises(defer.CancelledError): yield d1
def test_add_non_deferred(self): w = DeferWaiter() w.add(2) d = w.wait() self.assertTrue(d.called)
def test_add_deferred_called(self): w = DeferWaiter() w.add(defer.succeed(None)) d = w.wait() self.assertTrue(d.called)