mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
tests: pep8 and coverage pass, getting ready for release
This commit is contained in:
parent
f82afbc977
commit
da7e6f31ac
@ -6,8 +6,8 @@ class BaseHandler(object):
|
|||||||
"""
|
"""
|
||||||
Represents a base handler class that handles any request
|
Represents a base handler class that handles any request
|
||||||
"""
|
"""
|
||||||
def __call__(self, wbrequest):
|
def __call__(self, wbrequest): # pragma: no cover
|
||||||
return wbrequest
|
raise NotImplementedError('Need to implement in derived class')
|
||||||
|
|
||||||
def get_wburl_type(self):
|
def get_wburl_type(self):
|
||||||
return None
|
return None
|
||||||
|
@ -91,9 +91,10 @@ class ProxyRouter(object):
|
|||||||
self.proxy_cert_dl_view = None
|
self.proxy_cert_dl_view = None
|
||||||
return
|
return
|
||||||
|
|
||||||
if not openssl_avail: # pragma: no coverage
|
if not openssl_avail: # pragma: no cover
|
||||||
print('HTTPS proxy not available as pyopenssl is not installed')
|
print('HTTPS proxy not available as pyopenssl is not installed')
|
||||||
print('Please install via "pip install pyopenssl" to enable HTTPS support')
|
print('Please install via "pip install pyopenssl" ' +
|
||||||
|
'to enable HTTPS support')
|
||||||
self.ca = None
|
self.ca = None
|
||||||
self.proxy_cert_dl_view = None
|
self.proxy_cert_dl_view = None
|
||||||
return
|
return
|
||||||
@ -329,8 +330,6 @@ class ProxyRouter(object):
|
|||||||
render_response(available=available,
|
render_response(available=available,
|
||||||
pem_path=self.CERT_DL_PEM,
|
pem_path=self.CERT_DL_PEM,
|
||||||
p12_path=self.CERT_DL_P12))
|
p12_path=self.CERT_DL_P12))
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
elif env['pywb.proxy_req_uri'] == self.CERT_DL_PEM:
|
elif env['pywb.proxy_req_uri'] == self.CERT_DL_PEM:
|
||||||
buff = ''
|
buff = ''
|
||||||
|
@ -6,7 +6,7 @@ import urlparse
|
|||||||
import base64
|
import base64
|
||||||
import os
|
import os
|
||||||
|
|
||||||
try: # pragma: no coverage
|
try: # pragma: no cover
|
||||||
import uwsgi
|
import uwsgi
|
||||||
uwsgi_cache = True
|
uwsgi_cache = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -14,7 +14,7 @@ except ImportError:
|
|||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
class UwsgiCache(object): # pragma: no coverage
|
class UwsgiCache(object): # pragma: no cover
|
||||||
def __setitem__(self, item, value):
|
def __setitem__(self, item, value):
|
||||||
uwsgi.cache_update(item, value)
|
uwsgi.cache_update(item, value)
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ class BaseCollResolver(object):
|
|||||||
return None, None, None, None, self.select_coll_response(env)
|
return None, None, None, None, self.select_coll_response(env)
|
||||||
|
|
||||||
# if 'use_default_coll'
|
# if 'use_default_coll'
|
||||||
elif self.use_default_coll == True or len(self.routes) == 1:
|
elif self.use_default_coll or len(self.routes) == 1:
|
||||||
route = self.routes[0]
|
route = self.routes[0]
|
||||||
coll = self.routes[0].path
|
coll = self.routes[0].path
|
||||||
|
|
||||||
@ -121,7 +121,6 @@ class ProxyAuthResolver(BaseCollResolver):
|
|||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
class CookieResolver(BaseCollResolver):
|
class CookieResolver(BaseCollResolver):
|
||||||
|
|
||||||
SESH_COOKIE_NAME = '__pywb_proxy_sesh'
|
SESH_COOKIE_NAME = '__pywb_proxy_sesh'
|
||||||
|
|
||||||
def __init__(self, routes, config):
|
def __init__(self, routes, config):
|
||||||
@ -173,7 +172,9 @@ class CookieResolver(BaseCollResolver):
|
|||||||
coll, ts, sesh_id = self.get_coll(env)
|
coll, ts, sesh_id = self.get_coll(env)
|
||||||
|
|
||||||
if coll:
|
if coll:
|
||||||
return self.make_sethost_cookie_response(sesh_id, path_url, env)
|
return self.make_sethost_cookie_response(sesh_id,
|
||||||
|
path_url,
|
||||||
|
env)
|
||||||
else:
|
else:
|
||||||
return self.make_magic_response('select', path_url, env)
|
return self.make_magic_response('select', path_url, env)
|
||||||
|
|
||||||
@ -192,7 +193,8 @@ class CookieResolver(BaseCollResolver):
|
|||||||
return self.make_redir_response(wb_url.url)
|
return self.make_redir_response(wb_url.url)
|
||||||
|
|
||||||
elif server_name.endswith(self.set_prefix):
|
elif server_name.endswith(self.set_prefix):
|
||||||
old_sesh_id = WbRequest.extract_client_cookie(env, self.cookie_name)
|
old_sesh_id = WbRequest.extract_client_cookie(env,
|
||||||
|
self.cookie_name)
|
||||||
sesh_id = self.create_renew_sesh_id(old_sesh_id)
|
sesh_id = self.create_renew_sesh_id(old_sesh_id)
|
||||||
|
|
||||||
if sesh_id != old_sesh_id:
|
if sesh_id != old_sesh_id:
|
||||||
@ -260,7 +262,6 @@ class CookieResolver(BaseCollResolver):
|
|||||||
suffix=path_parts.netloc,
|
suffix=path_parts.netloc,
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
|
|
||||||
def make_magic_response(self, prefix, url, env,
|
def make_magic_response(self, prefix, url, env,
|
||||||
suffix=None, headers=None):
|
suffix=None, headers=None):
|
||||||
full_url = env['pywb.proxy_scheme'] + '://' + prefix + '.'
|
full_url = env['pywb.proxy_scheme'] + '://' + prefix + '.'
|
||||||
@ -312,5 +313,3 @@ class CookieResolver(BaseCollResolver):
|
|||||||
headers.append((name, value))
|
headers.append((name, value))
|
||||||
|
|
||||||
return WbResponse.redir_response(url, headers=headers)
|
return WbResponse.redir_response(url, headers=headers)
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ from pywb.utils.bufferedreaders import ChunkedDataReader
|
|||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
class RewriteContent:
|
class RewriteContent:
|
||||||
|
HEAD_REGEX = re.compile(r'<\s*head\b[^>]*[>]+', re.I)
|
||||||
|
|
||||||
def __init__(self, ds_rules_file=None, is_framed_replay=False):
|
def __init__(self, ds_rules_file=None, is_framed_replay=False):
|
||||||
self.ruleset = RuleSet(RewriteRules, 'rewrite',
|
self.ruleset = RuleSet(RewriteRules, 'rewrite',
|
||||||
default_rule_config={},
|
default_rule_config={},
|
||||||
@ -69,7 +71,6 @@ class RewriteContent:
|
|||||||
status_headers, stream = self.sanitize_content(headers, stream)
|
status_headers, stream = self.sanitize_content(headers, stream)
|
||||||
return (status_headers, self.stream_to_gen(stream), False)
|
return (status_headers, self.stream_to_gen(stream), False)
|
||||||
|
|
||||||
|
|
||||||
if wb_url.is_banner_only:
|
if wb_url.is_banner_only:
|
||||||
urlrewriter = None
|
urlrewriter = None
|
||||||
|
|
||||||
@ -155,16 +156,13 @@ class RewriteContent:
|
|||||||
rewriter = rewriter_class(urlrewriter)
|
rewriter = rewriter_class(urlrewriter)
|
||||||
|
|
||||||
# Create rewriting generator
|
# Create rewriting generator
|
||||||
gen = self.stream_to_gen(stream,
|
gen = self.stream_to_gen(stream,
|
||||||
rewrite_func=rewriter.rewrite,
|
rewrite_func=rewriter.rewrite,
|
||||||
final_read_func=rewriter.close,
|
final_read_func=rewriter.close,
|
||||||
first_buff=first_buff)
|
first_buff=first_buff)
|
||||||
|
|
||||||
|
|
||||||
return (status_headers, gen, True)
|
return (status_headers, gen, True)
|
||||||
|
|
||||||
HEAD_REGEX = re.compile(r'<\s*head\b[^>]*[>]+', re.I)
|
|
||||||
|
|
||||||
def _head_insert_only_gen(self, insert_str, stream):
|
def _head_insert_only_gen(self, insert_str, stream):
|
||||||
max_len = 1024
|
max_len = 1024
|
||||||
buff = ''
|
buff = ''
|
||||||
|
@ -20,7 +20,7 @@ class LiveResourceException(WbException):
|
|||||||
#=================================================================
|
#=================================================================
|
||||||
class RewriteHandler(SearchPageWbUrlHandler):
|
class RewriteHandler(SearchPageWbUrlHandler):
|
||||||
|
|
||||||
LIVE_COOKIE = 'pywb.timestamp={0}; max-age=60';
|
LIVE_COOKIE = 'pywb.timestamp={0}; max-age=60'
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
super(RewriteHandler, self).__init__(config)
|
super(RewriteHandler, self).__init__(config)
|
||||||
|
@ -229,7 +229,9 @@ def create_wb_router(passed_config={}):
|
|||||||
if hasattr(route.handler, 'resolve_refs'):
|
if hasattr(route.handler, 'resolve_refs'):
|
||||||
route.handler.resolve_refs(handler_dict)
|
route.handler.resolve_refs(handler_dict)
|
||||||
|
|
||||||
# Check for new proxy mode!
|
# default to regular archival mode
|
||||||
|
router = ArchivalRouter
|
||||||
|
|
||||||
if config.get('enable_http_proxy', False):
|
if config.get('enable_http_proxy', False):
|
||||||
router = ProxyArchivalRouter
|
router = ProxyArchivalRouter
|
||||||
|
|
||||||
@ -250,9 +252,6 @@ def create_wb_router(passed_config={}):
|
|||||||
if view:
|
if view:
|
||||||
passed_config['proxy_options']['proxy_cert_download_view'] = view
|
passed_config['proxy_options']['proxy_cert_download_view'] = view
|
||||||
|
|
||||||
else:
|
|
||||||
router = ArchivalRouter
|
|
||||||
|
|
||||||
# Finally, create wb router
|
# Finally, create wb router
|
||||||
return router(
|
return router(
|
||||||
routes,
|
routes,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user