def test_response(self): promise = Promise() self.assertFalse(promise.done(), 'promise is not ready') response = Response(promise) self.assertFalse(response.done(), 'response is not ready') promise.fulfill(httplib2.Response({ 'status': 200, }), 'hello world') self.assertTrue(promise.done(), 'promise is ready') self.assertTrue(response.done(), 'response is ready') # wait doesn't block response.wait() self.assertTrue('status' in response, 'status missing') self.assertEqual(response['status'], 200, 'unexpected status item') self.assertEqual(response.status, 200, 'unexpected status attr') self.assertEqual(response.keys(), ['status'], 'unexpected keys') self.assertEqual(response.values(), [200], 'unexpected values') self.assertEqual(response.items(), [('status', 200)], 'unexpected values') self.assertEqual(len(response), 1, 'unexpected len') self.assertTrue(iter(response), 'iter failed') response['status'] = 304 self.assertEqual(response['status'], 304, 'unexpected status item after set') response.status = 404 self.assertEqual(response.status, 404, 'unexpected status attr after set') del response['status'] self.assertFalse('status' in response, 'status item not gone')
def test_response(self): promise = Promise() self.assertFalse(promise.done(), 'promise is not ready') response = Response(promise) self.assertFalse(response.done(), 'response is not ready') promise.fulfill(httplib2.Response({'status': 200,}), 'hello world') self.assertTrue(promise.done(), 'promise is ready') self.assertTrue(response.done(), 'response is ready') # wait doesn't block response.wait() self.assertTrue('status' in response, 'status missing') self.assertEqual(response['status'], 200, 'unexpected status item') self.assertEqual(response.status, 200, 'unexpected status attr') self.assertEqual(response.keys(), ['status'], 'unexpected keys') self.assertEqual(response.values(), [200], 'unexpected values') self.assertEqual(response.items(), [('status', 200)], 'unexpected values') self.assertEqual(len(response), 1, 'unexpected len') self.assertTrue(iter(response), 'iter failed') response['status'] = 304 self.assertEqual(response['status'], 304, 'unexpected status item after set') response.status = 404 self.assertEqual(response.status, 404, 'unexpected status attr after set') del response['status'] self.assertFalse('status' in response, 'status item not gone')
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')
def test_done(self): promise = Promise() self.assertFalse(promise.done(), 'promise does not start done') promise.fulfill(42, 43) self.assertTrue(promise.done(), 'promise is done after call to fulfill')