mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-05-23 21:55:49 +00:00
added redirect test
git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@2034 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
parent
168197a072
commit
141a3d1c94
1 changed files with 41 additions and 3 deletions
|
|
@ -26,15 +26,53 @@ class TestHttp (linkcheck.ftests.httptest.HttpServerTest):
|
|||
"""test http:// link checking"""
|
||||
|
||||
def test_html (self):
|
||||
self.start_server()
|
||||
url = u"http://localhost:%d/linkcheck/ftests/data/http.html"%self.port
|
||||
resultlines = self.get_resultlines("http.html")
|
||||
self.start_server(handler=RedirectHttpRequestHandler)
|
||||
try:
|
||||
url = u"http://localhost:%d/linkcheck/ftests/data/http.html" % \
|
||||
self.port
|
||||
resultlines = self.get_resultlines("http.html")
|
||||
self.direct(url, resultlines, recursionlevel=1)
|
||||
url = u"http://localhost:%d/redirect1" % self.port
|
||||
nurl = url
|
||||
rurl = url.replace("redirect", "newurl")
|
||||
resultlines = [
|
||||
u"url %s" % url,
|
||||
u"cache key %s" % nurl,
|
||||
u"real url %s" % rurl,
|
||||
u"info Redirected to %s." % rurl,
|
||||
u"warning Effective URL %s." % rurl,
|
||||
u"error",
|
||||
]
|
||||
self.direct(url, resultlines, recursionlevel=0)
|
||||
finally:
|
||||
self.stop_server()
|
||||
|
||||
|
||||
class RedirectHttpRequestHandler (linkcheck.ftests.httptest.NoQueryHttpRequestHandler):
|
||||
"""handler redirecting certain requests"""
|
||||
|
||||
def redirect (self):
|
||||
"""redirect request"""
|
||||
path = self.path.replace("redirect", "newurl")
|
||||
self.send_response(302)
|
||||
self.send_header("Location", path)
|
||||
self.end_headers()
|
||||
|
||||
|
||||
def do_GET (self):
|
||||
"""removes query part of GET request"""
|
||||
if "redirect" in self.path:
|
||||
self.redirect()
|
||||
else:
|
||||
super(RedirectHttpRequestHandler, self).do_GET()
|
||||
|
||||
def do_HEAD (self):
|
||||
if "redirect" in self.path:
|
||||
self.redirect()
|
||||
else:
|
||||
super(RedirectHttpRequestHandler, self).do_HEAD()
|
||||
|
||||
|
||||
def test_suite ():
|
||||
"""build and return a TestSuite"""
|
||||
suite = unittest.TestSuite()
|
||||
|
|
|
|||
Loading…
Reference in a new issue