1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00

tests: zipnum: better test coverage for incorrect idx or loc files, add invalid sample files zipnum-bad{.idx, .loc}, #112

This commit is contained in:
Ilya Kreymer 2015-06-05 17:46:45 -07:00
parent 2b9e1b97c3
commit 27212488e3
4 changed files with 33 additions and 2 deletions

View File

@ -142,6 +142,22 @@ org,iana)/time-zones 20140126200737 zipnum 9631 166 38
Traceback (most recent call last):
NotFoundException: No Captures found for: http://aaa.zz/ (domain query)
# Invalid .idx filesor or missing loc
>>> zip_test_err(url='http://example.com/', matchType='exact')
Traceback (most recent call last):
Exception: No Locations Found for: foo
>>> zip_test_err(url='http://iana.org/x', matchType='exact')
Traceback (most recent call last):
IOError: [Errno 2] No such file or directory: './sample_archive/invalid'
>>> zip_test_err(url='http://example.zz/x', matchType='exact')
Traceback (most recent call last):
Exception: No Locations Found for: foo2
"""
from test_cdxops import cdx_ops_test
@ -161,6 +177,10 @@ def zip_ops_test(url, **kwargs):
sources = test_zipnum
cdx_ops_test(url, sources, **kwargs)
def zip_test_err(url, **kwargs):
sources = get_test_dir() + 'zipcdx/zipnum-bad.idx'
cdx_ops_test(url, sources, **kwargs)
def test_zip_prefix_load():

View File

@ -290,6 +290,11 @@ class ZipNumCluster(CDXSource):
last_exc = None
last_traceback = None
try:
locations = self.loc_resolver(blocks.part, query)
except:
raise Exception('No Locations Found for: ' + blocks.part)
for location in self.loc_resolver(blocks.part, query):
try:
return self.load_blocks(location, blocks, ranges, query)
@ -299,9 +304,9 @@ class ZipNumCluster(CDXSource):
last_traceback = sys.exc_info()[2]
if last_exc:
raise exc, None, last_traceback
raise last_exc, None, last_traceback
else:
raise Exception('No Locations Found for: ' + block.part)
raise Exception('No Locations Found for: ' + blocks.part)
def load_blocks(self, location, blocks, ranges, query):
""" Load one or more blocks of compressed cdx lines, return

View File

@ -0,0 +1,3 @@
com,example)/ 20140127171200 foo 0 275 1
org,iana)/ 20140127171238 bar 275 328 2
zz,example)/ 20140127171238 foo2 275 328 2

View File

@ -0,0 +1,3 @@
bar ./sample_archive/invalid
foo2
zipnum ./sample_archive/x-bad-path-to-ignore-x ./sample_archive/zipcdx/zipnum-sample.cdx.gz