def test_abort_fails_all_pending_requests(self, read_message): request1 = metadata.MetadataRequest() request2 = metadata.MetadataRequest(topics=["example.foo"]) mock_responses = [ Mock(correlation_id=request1.correlation_id), Mock(correlation_id=request2.correlation_id), ] def get_next_response(*args): return self.future_value(mock_responses.pop(0)) read_message.side_effect = get_next_response conn = Connection("localhost", 1234) conn.stream = Mock() conn.stream.write.return_value = self.future_value(None) responses = [conn.send(request1), conn.send(request2)] conn.abort() conn.abort() # second abort is a no-op for response in responses: error = response.exception() self.assertEqual(error.host, "localhost") self.assertEqual(error.port, 1234)