def test_callback(self): def callback(promise): promise.called = True promise = Promise(callback) promise.fulfill(42, 43) self.assertEqual(promise.get_response(), 42) self.assertEqual(promise.get_content(), 43) self.assertTrue(promise.called)
def test_set_and_flag(self): promise = Promise() self.assertFalse(promise.done(), 'promise does not start done') delay = 0.1 WaitAndSet(promise, 42, 43, delay).start() start = datetime.now() self.assertFalse(promise.done(), 'promise still not done') self.assertEqual(promise.get_response(), 42, 'expected response') self.assertEqual(promise.get_content(), 43, 'expected content') duration = datetime.now() - start min = timedelta(seconds=delay - 0.1) max = timedelta(seconds=delay + 0.1) self.assertTrue(min < duration and duration < max, 'took around 1s to get response and content') self.assertTrue(promise.done(), 'promise now done')