Skip to content

Commit 8428b65

Browse files
committed
Make observability test self-contained
1 parent b5f590a commit 8428b65

1 file changed

Lines changed: 86 additions & 1 deletion

File tree

tests/test_main_observability.py

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,93 @@ class MainObservabilityTests(unittest.TestCase):
1414
def setUp(self):
1515
self.saved_modules = {
1616
name: sys.modules.get(name)
17-
for name in ("workers", "main", "worker_asgi_bridge", "observability")
17+
for name in (
18+
"fastapi",
19+
"fastapi.exception_handlers",
20+
"fastapi.exceptions",
21+
"fastapi.responses",
22+
"main",
23+
"observability",
24+
"starlette.exceptions",
25+
"worker_asgi_bridge",
26+
"workers",
27+
)
1828
}
29+
fastapi = types.ModuleType("fastapi")
30+
31+
class FastAPI:
32+
def __init__(self, *args, **kwargs):
33+
pass
34+
35+
def add_middleware(self, *args, **kwargs):
36+
pass
37+
38+
def exception_handler(self, *args, **kwargs):
39+
def decorator(func):
40+
return func
41+
42+
return decorator
43+
44+
def get(self, *args, **kwargs):
45+
def decorator(func):
46+
return func
47+
48+
return decorator
49+
50+
def post(self, *args, **kwargs):
51+
def decorator(func):
52+
return func
53+
54+
return decorator
55+
56+
class Request:
57+
pass
58+
59+
fastapi.FastAPI = FastAPI
60+
fastapi.Request = Request
61+
sys.modules["fastapi"] = fastapi
62+
63+
exception_handlers = types.ModuleType("fastapi.exception_handlers")
64+
65+
async def http_exception_handler(request, exc):
66+
return None
67+
68+
async def request_validation_exception_handler(request, exc):
69+
return None
70+
71+
exception_handlers.http_exception_handler = http_exception_handler
72+
exception_handlers.request_validation_exception_handler = request_validation_exception_handler
73+
sys.modules["fastapi.exception_handlers"] = exception_handlers
74+
75+
fastapi_exceptions = types.ModuleType("fastapi.exceptions")
76+
77+
class RequestValidationError(Exception):
78+
pass
79+
80+
fastapi_exceptions.RequestValidationError = RequestValidationError
81+
sys.modules["fastapi.exceptions"] = fastapi_exceptions
82+
83+
fastapi_responses = types.ModuleType("fastapi.responses")
84+
85+
class Response:
86+
def __init__(self, *args, **kwargs):
87+
pass
88+
89+
class HTMLResponse(Response):
90+
pass
91+
92+
fastapi_responses.HTMLResponse = HTMLResponse
93+
fastapi_responses.Response = Response
94+
sys.modules["fastapi.responses"] = fastapi_responses
95+
96+
starlette_exceptions = types.ModuleType("starlette.exceptions")
97+
98+
class HTTPException(Exception):
99+
pass
100+
101+
starlette_exceptions.HTTPException = HTTPException
102+
sys.modules["starlette.exceptions"] = starlette_exceptions
103+
19104
workers = types.ModuleType("workers")
20105

21106
class WorkerEntrypoint:

0 commit comments

Comments
 (0)