class RecordTransportFullTestCase(unittest.TestCase): def setUp(self): self.name = os.tmpnam() self.t = RecordTransport([{}], recfile=self.name, connection_class=DummyConnection) self.args = ('GET', '/myindex', None, None) def test_record_works_normally_if_no_file(self): self.t.recfile = None self.t.perform_request(*self.args) calls = self.t.get_connection().calls assert len(calls) == 1 assert calls[0][0] == self.args def test_record_works_normally_if_exception_raised_in_logging(self): self.t.format_request = mock.Mock() self.t.format_request.side_effect = Exception('BOOM!') self.t.perform_request(*self.args) calls = self.t.get_connection().calls assert len(calls) == 1 assert calls[0][0] == self.args def test_request_is_logged(self): self.t.perform_request(*self.args) calls = self.t.get_connection().calls assert len(calls) == 1 assert calls[0][0] == self.args with open(self.name, 'r') as rfile: contents = rfile.read() assert len(contents), 'Empty replay log contents' for item in self.args: if item: assert item in contents, '%s not found in replay log' % item