class TestElisaHttpClientPipeline(ElisaTestCase, SetupServerMixin): def setUp(self): self.client = ElisaHttpClient(pipeline=True) setup_dfr = self.client.open('localhost', SERVER_PORT) return setup_dfr def tearDown(self): self.http_factory.crashed = False return self.client.close() def test_pipeline(self): """Pipeline two requests, expect no errors""" res_dfr = defer.Deferred() got_first_response = False def first_request_done(response): global got_first_response got_first_response = True self.assertEqual(response.code, 200) return response def second_request_done(response): global got_first_response self.failUnless(got_first_response) self.assertEqual(response.code, 200) return response first_request_dfr = self.client.request('/') second_request_dfr = self.client.request('/') first_request_dfr.addCallback(first_request_done) first_request_dfr.addErrback(res_dfr.errback) second_request_dfr.addCallback(second_request_done) second_request_dfr.chainDeferred(res_dfr) return res_dfr