mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
enable bulk doctest testing via nosetests --with-doctest
as well as individual doctests andd utils.enable_doctests() func which checks if executing app is nosetests (is there a better a way?)
This commit is contained in:
parent
7722014a96
commit
2d0cb5745d
@ -138,8 +138,9 @@ class ReferRedirect:
|
||||
|
||||
return WbResponse.redir_response(final_url)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
|
||||
def test_redir(matchHost, request_uri, referrer):
|
||||
env = {'REL_REQUEST_URI': request_uri, 'HTTP_REFERER': referrer}
|
||||
@ -153,6 +154,7 @@ if __name__ == "__main__":
|
||||
return rep.status_headers.getHeader('Location')
|
||||
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
||||
|
@ -372,8 +372,8 @@ class ChunkedLineReader(LineReader):
|
||||
|
||||
|
||||
#=================================================================
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
import os
|
||||
import pprint
|
||||
|
||||
@ -385,5 +385,6 @@ if __name__ == "__main__":
|
||||
archive = testloader.load(path, offset, length)
|
||||
pprint.pprint((archive.type, archive.rec_headers, archive.status_headers))
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
@ -115,8 +115,8 @@ class HeaderRewriter:
|
||||
|
||||
return (newHeaders, removedHeaderDict)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
import os
|
||||
import pprint
|
||||
import url_rewriter
|
||||
@ -129,5 +129,6 @@ if __name__ == "__main__":
|
||||
rewritten = headerrewriter.rewrite(StatusAndHeaders(status, headers), urlrewriter)
|
||||
return vars(rewritten)
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
@ -309,8 +309,8 @@ class WBHtml(HTMLParser):
|
||||
#print
|
||||
#parser.feed(instr)
|
||||
#print
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
|
||||
url_rewriter = ArchivalUrlRewriter('/20131226101010/http://example.com/some/path/index.html', '/web/')
|
||||
|
||||
@ -318,6 +318,7 @@ if __name__ == "__main__":
|
||||
parser = WBHtml(url_rewriter, headInsert = headInsert)
|
||||
print parser.rewrite(data) + parser.close()
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
||||
|
@ -9,16 +9,15 @@ from wbarchivalurl import ArchivalUrl
|
||||
class RemoteCDXServer:
|
||||
"""
|
||||
>>> x = cdxserver.load('example.com', parse_cdx = True, limit = '2')
|
||||
>>> pprint(x[0])
|
||||
{'digest': 'HT2DYGA5UKZCPBSFVCV3JOBXGW2G5UUA',
|
||||
'length': '1792',
|
||||
'mimetype': 'text/html',
|
||||
'original': 'http://example.com:80/',
|
||||
'statuscode': '200',
|
||||
'timestamp': '20020120142510',
|
||||
'urlkey': 'com,example)/'}
|
||||
|
||||
"""
|
||||
>>> pprint(x[0].items())
|
||||
[('urlkey', 'com,example)/'),
|
||||
('timestamp', '20020120142510'),
|
||||
('original', 'http://example.com:80/'),
|
||||
('mimetype', 'text/html'),
|
||||
('statuscode', '200'),
|
||||
('digest', 'HT2DYGA5UKZCPBSFVCV3JOBXGW2G5UUA'),
|
||||
('length', '1792')]
|
||||
"""
|
||||
|
||||
def __init__(self, serverUrl, cookie = None):
|
||||
self.serverUrl = serverUrl
|
||||
@ -124,11 +123,11 @@ class CDXCaptureResult(OrderedDict):
|
||||
|
||||
# Testing
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
from pprint import pprint
|
||||
|
||||
cdxserver = RemoteCDXServer('http://web.archive.org/cdx/search/cdx')
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
@ -214,10 +214,8 @@ class CSSRewriter(RegexRewriter):
|
||||
(CSSRewriter.CSS_IMPORT_NO_URL_REGEX, RegexRewriter.archivalRewrite(rewriter), 1),
|
||||
]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
arcrw = ArchivalUrlRewriter('/20131010im_/http://example.com/', '/web/')
|
||||
|
||||
def test_js(string, extra = []):
|
||||
@ -230,7 +228,7 @@ if __name__ == "__main__":
|
||||
return CSSRewriter(arcrw).rewrite(string)
|
||||
|
||||
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
||||
|
@ -196,7 +196,7 @@ class ReplayHandler(object):
|
||||
#=================================================================
|
||||
class RewritingReplayHandler(ReplayHandler):
|
||||
|
||||
def __init__(self, resolvers, archiveloader, headInsert = None, headerRewriter = None, redir_to_exact = True):
|
||||
def __init__(self, resolvers, archiveloader, headInsert = None, headerRewriter = None, redir_to_exact = True, buffer_response = False):
|
||||
ReplayHandler.__init__(self, resolvers, archiveloader)
|
||||
self.headInsert = headInsert
|
||||
if not headerRewriter:
|
||||
@ -205,7 +205,7 @@ class RewritingReplayHandler(ReplayHandler):
|
||||
self.redir_to_exact = redir_to_exact
|
||||
|
||||
# buffer or stream rewritten response
|
||||
self.buffer_response = False
|
||||
self.buffer_response = buffer_response
|
||||
|
||||
|
||||
def _textContentType(self, contentType):
|
||||
|
@ -3,6 +3,7 @@ import urlparse
|
||||
|
||||
from wbarchivalurl import ArchivalUrl
|
||||
|
||||
|
||||
class ArchivalUrlRewriter:
|
||||
"""
|
||||
>>> test_rewrite('other.html', '/20131010/http://example.com/path/page.html', 'https://web.archive.org/web/')
|
||||
@ -112,11 +113,15 @@ class ArchivalUrlRewriter:
|
||||
|
||||
return url
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
import utils
|
||||
if __name__ == "__main__" or utils.enable_doctests():
|
||||
def test_rewrite(rel_url, base_url, prefix, mod = None):
|
||||
rewriter = ArchivalUrlRewriter(base_url, prefix)
|
||||
return rewriter.rewrite(rel_url, mod)
|
||||
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
||||
|
||||
|
@ -131,7 +131,20 @@ def rel_request_uri(environ, include_query=1):
|
||||
return url
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
#============================================
|
||||
# Support for bulk doctest testing via nose
|
||||
# nosetests --with-doctest
|
||||
|
||||
import sys
|
||||
is_in_nose = sys.argv[0].endswith('nosetests')
|
||||
|
||||
def enable_doctests():
|
||||
return is_in_nose
|
||||
|
||||
#============================================
|
||||
|
||||
if __name__ == "__main__" or enable_doctests():
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user