def start_server(*resp):
"""HTTP server replying with the given responses to the expected
requests."""
def url(port, path):
return 'http://%s:%s%s' % (socket.gethostname(), port, path)
responses = list(reversed(resp))
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_HEAD(self):
response = responses.pop()
assert response.path == self.path
self.send_response(response.code)
for header, value in list(response.headers.items()):
self.send_header(header, value)
self.end_headers()
httpd = SocketServer.TCPServer(("", 0), MyHandler)
t = threading.Thread(target=httpd.serve_forever)
t.setDaemon(True)
t.start()
port = httpd.server_address[1]
yield functools.partial(url, port)
httpd.shutdown()
评论列表
文章目录