mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-04-18 13:20:59 +00:00
ignore query of requests to test http server
git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@1542 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
parent
4078508e16
commit
587724ffdc
1 changed files with 23 additions and 3 deletions
|
|
@ -50,7 +50,7 @@ class HttpServerTest (linkcheck.ftests.StandardTest):
|
|||
conn.getresponse()
|
||||
|
||||
|
||||
class StoppableHttpRequestHandler (SimpleHTTPServer.SimpleHTTPRequestHandler):
|
||||
class StoppableHttpRequestHandler (SimpleHTTPServer.SimpleHTTPRequestHandler, object):
|
||||
"""http request handler with QUIT stopping the server"""
|
||||
|
||||
def do_QUIT (self):
|
||||
|
|
@ -64,7 +64,7 @@ class StoppableHttpRequestHandler (SimpleHTTPServer.SimpleHTTPRequestHandler):
|
|||
pass
|
||||
|
||||
|
||||
class StoppableHttpServer (BaseHTTPServer.HTTPServer):
|
||||
class StoppableHttpServer (BaseHTTPServer.HTTPServer, object):
|
||||
"""http server that reacts to self.stop flag"""
|
||||
|
||||
def serve_forever (self):
|
||||
|
|
@ -74,9 +74,29 @@ class StoppableHttpServer (BaseHTTPServer.HTTPServer):
|
|||
self.handle_request()
|
||||
|
||||
|
||||
class NoQueryHttpRequestHandler (StoppableHttpRequestHandler):
|
||||
"""handler ignoring the query part of requests"""
|
||||
|
||||
def remove_path_query (self):
|
||||
"""remove everything after a question mark"""
|
||||
i = self.path.find('?')
|
||||
if i != -1:
|
||||
self.path = self.path[:i]
|
||||
|
||||
def do_GET (self):
|
||||
"""removes query part of GET request"""
|
||||
self.remove_path_query()
|
||||
super(NoQueryHttpRequestHandler, self).do_GET()
|
||||
|
||||
def do_HEAD (self):
|
||||
"""removes query part of HEAD request"""
|
||||
self.remove_path_query()
|
||||
super(NoQueryHttpRequestHandler, self).do_HEAD()
|
||||
|
||||
|
||||
def start_server (port):
|
||||
"""start an HTTP server on given port"""
|
||||
HandlerClass = StoppableHttpRequestHandler
|
||||
HandlerClass = NoQueryHttpRequestHandler
|
||||
ServerClass = StoppableHttpServer
|
||||
server_address = ('', port)
|
||||
HandlerClass.protocol_version = "HTTP/1.0"
|
||||
|
|
|
|||
Loading…
Reference in a new issue