@@ -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