1
0
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:
Ilya Kreymer 2014-01-22 15:28:01 -08:00
parent 7722014a96
commit 2d0cb5745d
9 changed files with 51 additions and 31 deletions

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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):

View File

@ -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()

View File

@ -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()