38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from pathlib import Path
|
|
|
|
# Returns incrementer.wasm, with appropriate headers. Depending on query
|
|
# parameter, it can simulate a variety of network errors.
|
|
def main(request, response):
|
|
error = request.GET.first(b"error", None)
|
|
|
|
if error == b"close-connection":
|
|
# Close connection without writing anything, to simulate a network
|
|
# error. The write call is needed to avoid writing the default headers.
|
|
response.writer.write("")
|
|
response.close_connection = True
|
|
return
|
|
|
|
if error == b"http-error":
|
|
response.status = (404, b"OK")
|
|
else:
|
|
response.status = (200, b"OK")
|
|
|
|
if error == b"wrong-content-type":
|
|
response.headers.set(b"Content-Type", b"application/javascript")
|
|
elif error != b"no-content-type":
|
|
response.headers.set(b"Content-Type", b"application/wasm")
|
|
|
|
if error == b"bad-allow-fledge":
|
|
response.headers.set(b"Ad-Auction-Allowed", b"sometimes")
|
|
elif error == b"fledge-not-allowed":
|
|
response.headers.set(b"Ad-Auction-Allowed", b"false")
|
|
elif error != b"no-allow-fledge":
|
|
response.headers.set(b"Ad-Auction-Allowed", b"true")
|
|
|
|
if error == b"no-body":
|
|
return b""
|
|
|
|
if error == b"not-wasm":
|
|
return b"This is not wasm"
|
|
|
|
return (Path(__file__).parent.resolve() / "incrementer.wasm").read_bytes()
|