rendered paste bodyclass 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