import random from fastapi import FastAPI from fastapi.responses import HTMLResponse from httpx import AsyncClient app = FastAPI() base = "/test" def generate_html_response(): html_content = """ PyScript Service Worker

PyScript from a service worker 🦄

FastAPI demo

""" return HTMLResponse(content=html_content, status_code=200) @app.get(base + "/", response_class=HTMLResponse) async def root(): return generate_html_response() # used to test errors forwarded as 500 # shenanigans(1, 2, 3) @app.get(base + "/json") async def json(): # used to test that file changes actually happen when # '/pyscript.sw/update_handler' is reached # print(base + "/json") return {"message": random.choice(["Hello World", "Bonjour le monde", "Hola Mundo"])} @app.get(base + "/emoji") async def emoji(): return {"emoji": random.choice(["👋", "👋🏻", "👋🏼", "👋🏽", "👋🏾", "👋🏿"])} async def handle_request(request): async with AsyncClient(app=app, base_url="http://testserver") as client: response = await client.get(request.url) return response.text, response.status_code, response.headers.items()