def test_consecutive_with_close(self): """Test two consecutive requests on the same URI, closing the client between the two """ res_dfr = defer.Deferred() def first_request_done(response): self.assertEqual(response.code, 200) def do_second_request(): close_dfr = self.client.close() close_dfr.addCallback(closed) def closed(): open_dfr = self.client.open('localhost', SERVER_PORT) open_dfr.addCallback(opened) def opened(): second_request_dfr = self.client.request('/') second_request_dfr.addCallback(second_request_done) second_request_dfr.chainDeferred(res_dfr) do_second_request() return response def second_request_done(response): self.assertEqual(response.code, 200) return response first_request_dfr = self.client.request('/') first_request_dfr.addCallback(first_request_done) first_request_dfr.addErrback(res_dfr.errback) return res_dfr