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()