import urllib import sys, os sys.path.append(os.path.join(os.path.dirname(__file__), "../common/")) import sleep def main(request, response): index = request.request_path.index("?") args = request.request_path[index+1:].split("&") headers = [] statusSent = False headersSent = False for arg in args: if arg.startswith("ignored"): continue elif arg.endswith("ms"): sleep.sleep_at_least(float(arg[0:-2])) elif arg.startswith("redirect:"): return (302, "WEBPERF MARKETING"), [("Location", urllib.unquote(arg[9:]))], "TEST" elif arg.startswith("mime:"): headers.append(("Content-Type", urllib.unquote(arg[5:]))) elif arg.startswith("send:"): text = urllib.unquote(arg[5:]) if not statusSent: # Default to a 200 status code. response.writer.write_status(200) statusSent = True if not headersSent: for key, value in headers: response.writer.write_header(key, value) response.writer.end_headers() headersSent = True response.writer.write_content(text) elif arg.startswith("status:"): code = int(urllib.unquote(arg[7:])) response.writer.write_status(code) if code // 100 == 1: # Terminate informational 1XX responses with an empty line. response.writer.end_headers() else: statusSent = True elif arg == "flush": response.writer.flush() # else: # error " INVALID ARGUMENT %s" % arg