def setUp(self): from sleekpromises import register_sleek_promises register_sleek_promises() self.session = {} self.stream_start(plugins=['sleekpromises_scheduler', ]) self.scheduler = self.xmpp['sleekpromises_scheduler']
def test_simple_schedule(self): from sleekpromises import register_sleek_promises register_sleek_promises() self.stream_start(plugins=['sleekpromises_scheduler', ]) callback = mock.MagicMock() delay = 0.0 self.xmpp['sleekpromises_scheduler'].schedule_task(callback, delay=delay) time.sleep(delay + 0.1) self.assertEqual(callback.call_count, 1)
def test_cancel(self): from sleekpromises import register_sleek_promises register_sleek_promises() self.stream_start(plugins=['sleekpromises_scheduler', ]) callback = mock.MagicMock() delay = 4.0 cancel_handler = self.xmpp['sleekpromises_scheduler'].schedule_task(callback, delay=delay) time.sleep(delay/2) cancel_handler() time.sleep(delay + 1) self.assertEqual(callback.call_count, 0)
def test_defer(self): from sleekpromises import register_sleek_promises register_sleek_promises() self.stream_start(plugins=['sleekpromises_scheduler', ]) return_value = 'return_value' callback = mock.Mock() callback.return_value = return_value promise_result = mock.Mock() promise = self.xmpp['sleekpromises_scheduler'].defer(callback).then(promise_result) time.sleep(1.0) self.assertEqual(callback.call_count, 1) self.assertEqual(promise_result.call_count, 1) args, kwargs = promise_result.call_args self.assertEqual(args[0], return_value)