diff --git a/tests/integration/test_tornado.py b/tests/integration/test_tornado.py index fade78f..b7d3c4e 100644 --- a/tests/integration/test_tornado.py +++ b/tests/integration/test_tornado.py @@ -337,3 +337,19 @@ def test_existing_instances_get_patched(get_client, tmpdir): with vcr.use_cassette(str(tmpdir.join('data.yaml'))) as cass: yield get(client, 'http://httpbin.org/get') assert cass.play_count == 1 + + +@pytest.mark.gen_test +def test_request_time_is_set(get_client, tmpdir): + '''Ensures that the request_time on HTTPResponses is set.''' + + with vcr.use_cassette(str(tmpdir.join('data.yaml'))): + client = get_client() + response = yield get(client, 'http://httpbin.org/get') + assert response.request_time is not None + + with vcr.use_cassette(str(tmpdir.join('data.yaml'))) as cass: + client = get_client() + response = yield get(client, 'http://httpbin.org/get') + assert response.request_time is not None + assert cass.play_count == 1 diff --git a/vcr/stubs/tornado_stubs.py b/vcr/stubs/tornado_stubs.py index 3b771d6..5a4ce58 100644 --- a/vcr/stubs/tornado_stubs.py +++ b/vcr/stubs/tornado_stubs.py @@ -36,6 +36,7 @@ def vcr_fetch_impl(cassette, real_fetch_impl): "that is not yet supported by VCR.py. Please make the " "request outside a VCR.py context." % repr(request) ), + request_time=self.io_loop.time() - request.start_time, ) return callback(response) @@ -63,6 +64,7 @@ def vcr_fetch_impl(cassette, real_fetch_impl): headers=headers, buffer=BytesIO(vcr_response['body']['string']), effective_url=vcr_response.get('url'), + request_time=self.io_loop.time() - request.start_time, ) return callback(response) else: @@ -78,6 +80,7 @@ def vcr_fetch_impl(cassette, real_fetch_impl): "your current record mode (%r)." % (vcr_request, cassette._path, cassette.record_mode) ), + request_time=self.io_loop.time() - request.start_time, ) return callback(response)