mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +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)
|
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):
|
def test_redir(matchHost, request_uri, referrer):
|
||||||
env = {'REL_REQUEST_URI': request_uri, 'HTTP_REFERER': referrer}
|
env = {'REL_REQUEST_URI': request_uri, 'HTTP_REFERER': referrer}
|
||||||
@ -153,6 +154,7 @@ if __name__ == "__main__":
|
|||||||
return rep.status_headers.getHeader('Location')
|
return rep.status_headers.getHeader('Location')
|
||||||
|
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,8 +372,8 @@ class ChunkedLineReader(LineReader):
|
|||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
if __name__ == "__main__":
|
import utils
|
||||||
import doctest
|
if __name__ == "__main__" or utils.enable_doctests():
|
||||||
import os
|
import os
|
||||||
import pprint
|
import pprint
|
||||||
|
|
||||||
@ -385,5 +385,6 @@ if __name__ == "__main__":
|
|||||||
archive = testloader.load(path, offset, length)
|
archive = testloader.load(path, offset, length)
|
||||||
pprint.pprint((archive.type, archive.rec_headers, archive.status_headers))
|
pprint.pprint((archive.type, archive.rec_headers, archive.status_headers))
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
@ -115,8 +115,8 @@ class HeaderRewriter:
|
|||||||
|
|
||||||
return (newHeaders, removedHeaderDict)
|
return (newHeaders, removedHeaderDict)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
import utils
|
||||||
import doctest
|
if __name__ == "__main__" or utils.enable_doctests():
|
||||||
import os
|
import os
|
||||||
import pprint
|
import pprint
|
||||||
import url_rewriter
|
import url_rewriter
|
||||||
@ -129,5 +129,6 @@ if __name__ == "__main__":
|
|||||||
rewritten = headerrewriter.rewrite(StatusAndHeaders(status, headers), urlrewriter)
|
rewritten = headerrewriter.rewrite(StatusAndHeaders(status, headers), urlrewriter)
|
||||||
return vars(rewritten)
|
return vars(rewritten)
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
@ -309,8 +309,8 @@ class WBHtml(HTMLParser):
|
|||||||
#print
|
#print
|
||||||
#parser.feed(instr)
|
#parser.feed(instr)
|
||||||
#print
|
#print
|
||||||
if __name__ == "__main__":
|
import utils
|
||||||
import doctest
|
if __name__ == "__main__" or utils.enable_doctests():
|
||||||
|
|
||||||
url_rewriter = ArchivalUrlRewriter('/20131226101010/http://example.com/some/path/index.html', '/web/')
|
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)
|
parser = WBHtml(url_rewriter, headInsert = headInsert)
|
||||||
print parser.rewrite(data) + parser.close()
|
print parser.rewrite(data) + parser.close()
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,16 +9,15 @@ from wbarchivalurl import ArchivalUrl
|
|||||||
class RemoteCDXServer:
|
class RemoteCDXServer:
|
||||||
"""
|
"""
|
||||||
>>> x = cdxserver.load('example.com', parse_cdx = True, limit = '2')
|
>>> x = cdxserver.load('example.com', parse_cdx = True, limit = '2')
|
||||||
>>> pprint(x[0])
|
>>> pprint(x[0].items())
|
||||||
{'digest': 'HT2DYGA5UKZCPBSFVCV3JOBXGW2G5UUA',
|
[('urlkey', 'com,example)/'),
|
||||||
'length': '1792',
|
('timestamp', '20020120142510'),
|
||||||
'mimetype': 'text/html',
|
('original', 'http://example.com:80/'),
|
||||||
'original': 'http://example.com:80/',
|
('mimetype', 'text/html'),
|
||||||
'statuscode': '200',
|
('statuscode', '200'),
|
||||||
'timestamp': '20020120142510',
|
('digest', 'HT2DYGA5UKZCPBSFVCV3JOBXGW2G5UUA'),
|
||||||
'urlkey': 'com,example)/'}
|
('length', '1792')]
|
||||||
|
"""
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, serverUrl, cookie = None):
|
def __init__(self, serverUrl, cookie = None):
|
||||||
self.serverUrl = serverUrl
|
self.serverUrl = serverUrl
|
||||||
@ -124,11 +123,11 @@ class CDXCaptureResult(OrderedDict):
|
|||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
|
import utils
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__" or utils.enable_doctests():
|
||||||
import doctest
|
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
cdxserver = RemoteCDXServer('http://web.archive.org/cdx/search/cdx')
|
cdxserver = RemoteCDXServer('http://web.archive.org/cdx/search/cdx')
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
@ -214,10 +214,8 @@ class CSSRewriter(RegexRewriter):
|
|||||||
(CSSRewriter.CSS_IMPORT_NO_URL_REGEX, RegexRewriter.archivalRewrite(rewriter), 1),
|
(CSSRewriter.CSS_IMPORT_NO_URL_REGEX, RegexRewriter.archivalRewrite(rewriter), 1),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
import utils
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__" or utils.enable_doctests():
|
||||||
import doctest
|
|
||||||
|
|
||||||
arcrw = ArchivalUrlRewriter('/20131010im_/http://example.com/', '/web/')
|
arcrw = ArchivalUrlRewriter('/20131010im_/http://example.com/', '/web/')
|
||||||
|
|
||||||
def test_js(string, extra = []):
|
def test_js(string, extra = []):
|
||||||
@ -230,7 +228,7 @@ if __name__ == "__main__":
|
|||||||
return CSSRewriter(arcrw).rewrite(string)
|
return CSSRewriter(arcrw).rewrite(string)
|
||||||
|
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ class ReplayHandler(object):
|
|||||||
#=================================================================
|
#=================================================================
|
||||||
class RewritingReplayHandler(ReplayHandler):
|
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)
|
ReplayHandler.__init__(self, resolvers, archiveloader)
|
||||||
self.headInsert = headInsert
|
self.headInsert = headInsert
|
||||||
if not headerRewriter:
|
if not headerRewriter:
|
||||||
@ -205,7 +205,7 @@ class RewritingReplayHandler(ReplayHandler):
|
|||||||
self.redir_to_exact = redir_to_exact
|
self.redir_to_exact = redir_to_exact
|
||||||
|
|
||||||
# buffer or stream rewritten response
|
# buffer or stream rewritten response
|
||||||
self.buffer_response = False
|
self.buffer_response = buffer_response
|
||||||
|
|
||||||
|
|
||||||
def _textContentType(self, contentType):
|
def _textContentType(self, contentType):
|
||||||
|
@ -3,6 +3,7 @@ import urlparse
|
|||||||
|
|
||||||
from wbarchivalurl import ArchivalUrl
|
from wbarchivalurl import ArchivalUrl
|
||||||
|
|
||||||
|
|
||||||
class ArchivalUrlRewriter:
|
class ArchivalUrlRewriter:
|
||||||
"""
|
"""
|
||||||
>>> test_rewrite('other.html', '/20131010/http://example.com/path/page.html', 'https://web.archive.org/web/')
|
>>> test_rewrite('other.html', '/20131010/http://example.com/path/page.html', 'https://web.archive.org/web/')
|
||||||
@ -112,11 +113,15 @@ class ArchivalUrlRewriter:
|
|||||||
|
|
||||||
return url
|
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):
|
def test_rewrite(rel_url, base_url, prefix, mod = None):
|
||||||
rewriter = ArchivalUrlRewriter(base_url, prefix)
|
rewriter = ArchivalUrlRewriter(base_url, prefix)
|
||||||
return rewriter.rewrite(rel_url, mod)
|
return rewriter.rewrite(rel_url, mod)
|
||||||
|
|
||||||
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,7 +131,20 @@ def rel_request_uri(environ, include_query=1):
|
|||||||
return url
|
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
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user