fake_responses.py (1608B)
1 # /xhr/resources/conditional.py -- to fake a 304 response 2 3 def main(request, response): 4 if request.method == "OPTIONS": 5 # Assume this is a CORS preflight 6 response.headers.set(b"Access-Control-Allow-Headers", "*") 7 response.headers.set(b"Access-Control-Allow-Origin", "*") 8 response.status = (204, "No Content") 9 return b"" 10 tag = request.GET.first(b"tag", None) 11 redirect = request.GET.first(b"redirect", None) 12 match = request.headers.get(b"If-None-Match", None) 13 date = request.GET.first(b"date", b"") 14 modified = request.headers.get(b"If-Modified-Since", None) 15 url = request.GET.first(b"url", None) 16 response.headers.set(b"Access-Control-Allow-Origin", b"*") 17 response.headers.set(b"Timing-Allow-Origin", b"*") 18 if tag: 19 response.headers.set(b"ETag", b'"%s"' % tag) 20 elif date: 21 response.headers.set(b"Last-Modified", date) 22 if redirect: 23 response.headers.set(b"Location", redirect) 24 response.status = (302, b"Moved") 25 return b"" 26 27 if url: 28 filename = url.decode('utf-8').split("?")[0] 29 filepath = "./resource-timing/resources/{}".format(filename) 30 response.headers.set(b"Content-Type", b"text/javascript") 31 with open(filepath, 'rb') as f: 32 filedata = f.read() 33 34 return filedata 35 36 if ((match is not None and match == tag) or 37 (modified is not None and modified == date)): 38 response.status = (304, b"SUPERCOOL") 39 return b"" 40 else: 41 response.headers.set(b"Content-Type", b"text/plain") 42 return b"MAYBE NOT"