From ad5a43db7698296ab3455be4fa0d12a63296e384 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Tue, 23 Dec 2014 21:19:39 -0800 Subject: [PATCH] replay redirect: ensure no timestamp redirect when range request is present, alter test to include inexact timestamp --- pywb/framework/wbrequestresponse.py | 1 + pywb/webapp/replay_views.py | 3 +++ tests/test_integration.py | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pywb/framework/wbrequestresponse.py b/pywb/framework/wbrequestresponse.py index 12182362..95a07e66 100644 --- a/pywb/framework/wbrequestresponse.py +++ b/pywb/framework/wbrequestresponse.py @@ -143,6 +143,7 @@ class WbRequest(object): return None start = int(start) + self.custom_params['noredir'] = True if end: end = int(end) diff --git a/pywb/webapp/replay_views.py b/pywb/webapp/replay_views.py index 992b5e12..74a5ba6f 100644 --- a/pywb/webapp/replay_views.py +++ b/pywb/webapp/replay_views.py @@ -224,6 +224,9 @@ class ReplayView(object): if not redir_needed: return None + if self.enable_range_cache and wbrequest.extract_range(): + return None + new_url = (wbrequest.urlrewriter. get_new_url(timestamp=cdx['timestamp'], url=cdx['original'])) diff --git a/tests/test_integration.py b/tests/test_integration.py index 4dd7ba35..3322613b 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -173,7 +173,7 @@ class TestWb: def test_replay_range_cache_content(self): headers = [('Range', 'bytes=0-200')] - resp = self.testapp.get('/pywb/20140127171251id_/http://example.com', headers=headers) + resp = self.testapp.get('/pywb/20140127171250id_/http://example.com', headers=headers) assert resp.status_int == 206 assert resp.headers['Accept-Ranges'] == 'bytes'