mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
tests: add explicit cdxserver config testing with different config variations
This commit is contained in:
parent
91184426b7
commit
8b37fef8e0
@ -76,7 +76,7 @@ class BaseCDXServer(object):
|
|||||||
|
|
||||||
return self._check_cdx_iter(cdx_iter, query)
|
return self._check_cdx_iter(cdx_iter, query)
|
||||||
|
|
||||||
def _load_cdx_query(self, query):
|
def _load_cdx_query(self, query): # pragma: no cover
|
||||||
raise NotImplementedError('Implement in subclass')
|
raise NotImplementedError('Implement in subclass')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -148,9 +148,6 @@ class CDXServer(BaseCDXServer):
|
|||||||
self.sources.append(source)
|
self.sources.append(source)
|
||||||
|
|
||||||
def add_cdx_source(self, source, config):
|
def add_cdx_source(self, source, config):
|
||||||
if source is None:
|
|
||||||
return
|
|
||||||
|
|
||||||
if isinstance(source, CDXSource):
|
if isinstance(source, CDXSource):
|
||||||
self._add_cdx_source(source)
|
self._add_cdx_source(source)
|
||||||
|
|
||||||
@ -179,9 +176,6 @@ class CDXServer(BaseCDXServer):
|
|||||||
logging.warn('skipping unrecognized URI:%s', filename)
|
logging.warn('skipping unrecognized URI:%s', filename)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return 'CDX server serving from ' + str(self.sources)
|
|
||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
class RemoteCDXServer(BaseCDXServer):
|
class RemoteCDXServer(BaseCDXServer):
|
||||||
@ -204,9 +198,6 @@ class RemoteCDXServer(BaseCDXServer):
|
|||||||
def _load_cdx_query(self, query):
|
def _load_cdx_query(self, query):
|
||||||
return cdx_load([self.source], query, process=False)
|
return cdx_load([self.source], query, process=False)
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return 'Remote CDX server serving from ' + str(self.sources[0])
|
|
||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
def create_cdx_server(config, ds_rules_file=None, server_cls=None):
|
def create_cdx_server(config, ds_rules_file=None, server_cls=None):
|
||||||
@ -222,7 +213,8 @@ def create_cdx_server(config, ds_rules_file=None, server_cls=None):
|
|||||||
logging.debug('CDX Surt-Ordered? ' + str(surt_ordered))
|
logging.debug('CDX Surt-Ordered? ' + str(surt_ordered))
|
||||||
|
|
||||||
if not server_cls:
|
if not server_cls:
|
||||||
if isinstance(paths, str) and is_http(paths):
|
if ((isinstance(paths, str) and is_http(paths)) or
|
||||||
|
isinstance(paths, RemoteCDXSource)):
|
||||||
server_cls = RemoteCDXServer
|
server_cls = RemoteCDXServer
|
||||||
else:
|
else:
|
||||||
server_cls = CDXServer
|
server_cls = CDXServer
|
||||||
|
@ -16,7 +16,7 @@ class CDXSource(object):
|
|||||||
"""
|
"""
|
||||||
Represents any cdx index source
|
Represents any cdx index source
|
||||||
"""
|
"""
|
||||||
def load_cdx(self, query):
|
def load_cdx(self, query): # pragma: no cover
|
||||||
raise NotImplementedError('Implement in subclass')
|
raise NotImplementedError('Implement in subclass')
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +82,10 @@ class RemoteCDXSource(CDXSource):
|
|||||||
return iter(response)
|
return iter(response)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return 'Remote CDX Server: ' + self.remote_url
|
if self.remote_processing:
|
||||||
|
return 'Remote CDX Server: ' + self.remote_url
|
||||||
|
else:
|
||||||
|
return 'Remote CDX Source: ' + self.remote_url
|
||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
@ -91,6 +94,7 @@ class RedisCDXSource(CDXSource):
|
|||||||
|
|
||||||
def __init__(self, redis_url, config=None):
|
def __init__(self, redis_url, config=None):
|
||||||
import redis
|
import redis
|
||||||
|
self.redis_url = redis_url
|
||||||
self.redis = redis.StrictRedis.from_url(redis_url)
|
self.redis = redis.StrictRedis.from_url(redis_url)
|
||||||
|
|
||||||
self.key_prefix = self.DEFAULT_KEY_PREFIX
|
self.key_prefix = self.DEFAULT_KEY_PREFIX
|
||||||
@ -114,3 +118,6 @@ class RedisCDXSource(CDXSource):
|
|||||||
key += ' '
|
key += ' '
|
||||||
cdx_list = itertools.imap(lambda x: key + x, cdx_list)
|
cdx_list = itertools.imap(lambda x: key + x, cdx_list)
|
||||||
return cdx_list
|
return cdx_list
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return 'Redis - ' + self.redis_url
|
||||||
|
2
pywb/cdx/test/test_cdxconfig.yaml
Normal file
2
pywb/cdx/test/test_cdxconfig.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
|
@ -200,3 +200,7 @@ class ZipNumCluster(CDXSource):
|
|||||||
end = query.end_key
|
end = query.end_key
|
||||||
iter_ = itertools.takewhile(lambda line: line < end, iter_)
|
iter_ = itertools.takewhile(lambda line: line < end, iter_)
|
||||||
return iter_
|
return iter_
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return 'ZipNum Cluster: {0}, {1}'.format(self.summary,
|
||||||
|
self.loc_filename)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user