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

tests: add explicit cdxserver config testing with different config variations

This commit is contained in:
Ilya Kreymer 2014-04-02 15:01:40 -07:00
parent 91184426b7
commit 8b37fef8e0
4 changed files with 18 additions and 13 deletions

View File

@ -76,7 +76,7 @@ class BaseCDXServer(object):
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')
@staticmethod
@ -148,9 +148,6 @@ class CDXServer(BaseCDXServer):
self.sources.append(source)
def add_cdx_source(self, source, config):
if source is None:
return
if isinstance(source, CDXSource):
self._add_cdx_source(source)
@ -179,9 +176,6 @@ class CDXServer(BaseCDXServer):
logging.warn('skipping unrecognized URI:%s', filename)
return None
def __str__(self):
return 'CDX server serving from ' + str(self.sources)
#=================================================================
class RemoteCDXServer(BaseCDXServer):
@ -204,9 +198,6 @@ class RemoteCDXServer(BaseCDXServer):
def _load_cdx_query(self, query):
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):
@ -222,7 +213,8 @@ def create_cdx_server(config, ds_rules_file=None, server_cls=None):
logging.debug('CDX Surt-Ordered? ' + str(surt_ordered))
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
else:
server_cls = CDXServer

View File

@ -16,7 +16,7 @@ class CDXSource(object):
"""
Represents any cdx index source
"""
def load_cdx(self, query):
def load_cdx(self, query): # pragma: no cover
raise NotImplementedError('Implement in subclass')
@ -82,7 +82,10 @@ class RemoteCDXSource(CDXSource):
return iter(response)
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):
import redis
self.redis_url = redis_url
self.redis = redis.StrictRedis.from_url(redis_url)
self.key_prefix = self.DEFAULT_KEY_PREFIX
@ -114,3 +118,6 @@ class RedisCDXSource(CDXSource):
key += ' '
cdx_list = itertools.imap(lambda x: key + x, cdx_list)
return cdx_list
def __str__(self):
return 'Redis - ' + self.redis_url

View File

@ -0,0 +1,2 @@

View File

@ -200,3 +200,7 @@ class ZipNumCluster(CDXSource):
end = query.end_key
iter_ = itertools.takewhile(lambda line: line < end, iter_)
return iter_
def __str__(self):
return 'ZipNum Cluster: {0}, {1}'.format(self.summary,
self.loc_filename)