From 7b5cbaa878590179600de571472d92cbb6a18ef3 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Thu, 6 Mar 2014 16:11:46 -0800 Subject: [PATCH] cdx: clean up closest, reverse ops closest takes precedence over reverse 'reverse closest' not supported, add test to reflect that --- pywb/cdx/cdxops.py | 14 +++++++------- pywb/cdx/test/cdxserver_test.py | 8 ++++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pywb/cdx/cdxops.py b/pywb/cdx/cdxops.py index dfae8b18..46aae478 100644 --- a/pywb/cdx/cdxops.py +++ b/pywb/cdx/cdxops.py @@ -54,17 +54,17 @@ def process_cdx(cdx_iter, query): if collapse_time: cdx_iter = cdx_collapse_time_status(cdx_iter, collapse_time) - limit = query.limit - reverse = query.reverse - - if reverse: - cdx_iter = cdx_reverse(cdx_iter, limit) - closest = query.closest + reverse = query.reverse + limit = query.limit + if closest: cdx_iter = cdx_sort_closest(closest, cdx_iter, limit) - if limit and not reverse: + elif reverse: + cdx_iter = cdx_reverse(cdx_iter, limit) + + elif limit: cdx_iter = cdx_limit(cdx_iter, limit) return cdx_iter diff --git a/pywb/cdx/test/cdxserver_test.py b/pywb/cdx/test/cdxserver_test.py index 76282ed2..28a669ed 100644 --- a/pywb/cdx/test/cdxserver_test.py +++ b/pywb/cdx/test/cdxserver_test.py @@ -96,6 +96,14 @@ org,iana)/_css/2013.1/screen.css 20140126201054 http://www.iana.org/_css/2013.1/ 20140126200654 20140126200625 +# In case of both reverse and closest, closest takes precedence +# 'reverse closest' not supported at this time +# if it is, this test will reflect the change +>>> cdx_ops_test(closest = '20140126200826', url = 'http://iana.org/_css/2013.1/fonts/opensans-bold.ttf', fields = 'timestamp', limit = 3, reverse = True) +20140126200826 +20140126200816 +20140126200805 + >>> cdx_ops_test(closest = '20140126201306', url = 'http://iana.org/dnssec', resolveRevisits = True, sources = [test_cdx_dir + 'dupes.cdx', test_cdx_dir + 'iana.cdx']) org,iana)/dnssec 20140126201306 http://www.iana.org/dnssec text/html 302 3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ - - 442 772827 iana.warc.gz - - - org,iana)/dnssec 20140126201307 https://www.iana.org/dnssec text/html 200 PHLRSX73EV3WSZRFXMWDO6BRKTVUSASI - - 2278 773766 iana.warc.gz - - -