"""The legacy interface 5 and new interface 52 forward to separate worker paths.""" import asyncio import importlib import pytest from starlette.requests import Request @pytest.mark.parametrize("name,path", [ ("hairline_generate", "/api/v1/hairline/generate"), ("hairline_generate_52", "/api/v1/hairline/generate-52"), ]) def test_distinct_hairline_forwarding(monkeypatch, name, path): gateway = importlib.import_module("gateway.app") request = Request({"type": "http", "method": "POST", "path": path, "headers": []}) calls = [] async def proxy(actual_request, actual_path): assert actual_request is request calls.append(actual_path) return {"forwarded_to": actual_path} monkeypatch.setattr(gateway, "_proxy", proxy) endpoint = getattr(gateway, name) assert next(route for route in gateway.app.routes if getattr(route, "path", None) == path).endpoint is endpoint assert asyncio.run(endpoint(request)) == {"forwarded_to": path} assert calls == [path]