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')
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
 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')
Exemplo n.º 4
0
 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')