44from fastapi .testclient import TestClient
55from app .middlewares .unhandled_exceptions_middleware import UnhandledExceptionsMiddleware
66
7- # Handlers for various exception types
7+ # Exception handlers to trigger different exceptions
88
9- # 1. RuntimeError
109async def fail (request : Request ):
1110 raise RuntimeError ("boom" )
1211
13- # 2. ValueError
1412async def fail_value_error (request : Request ):
1513 raise ValueError ("Invalid value test" )
1614
17- # 3. KeyError
1815async def fail_key_error (request : Request ):
1916 raise KeyError ("Missing key test" )
2017
21- # 4. Healthy endpoint
2218async def ok (request : Request ):
2319 return JSONResponse ({"ok" : True })
2420
@@ -32,29 +28,25 @@ def client():
3228 app .add_api_route ("/ok" , ok , methods = ["GET" ])
3329 return TestClient (app )
3430
31+ ERROR_RESPONSE = {
32+ "success" : False ,
33+ "detail" : "internal server error, please reach out to support team at nivedit@exosphere.host"
34+ }
35+
3536def test_runtime_error_returns_expected_json (client ):
3637 resp = client .get ("/fail" )
3738 assert resp .status_code == 500
38- response_json = resp .json ()
39- assert response_json .get ("success" ) is False
40- assert "detail" in response_json
41- assert "server error" in response_json ["detail" ].lower ()
39+ assert resp .json () == ERROR_RESPONSE
4240
4341def test_value_error_returns_expected_json (client ):
4442 resp = client .get ("/fail_value_error" )
4543 assert resp .status_code == 500
46- response_json = resp .json ()
47- assert response_json .get ("success" ) is False
48- assert "detail" in response_json
49- assert "server error" in response_json ["detail" ].lower ()
44+ assert resp .json () == ERROR_RESPONSE
5045
5146def test_key_error_returns_expected_json (client ):
5247 resp = client .get ("/fail_key_error" )
5348 assert resp .status_code == 500
54- response_json = resp .json ()
55- assert response_json .get ("success" ) is False
56- assert "detail" in response_json
57- assert "server error" in response_json ["detail" ].lower ()
49+ assert resp .json () == ERROR_RESPONSE
5850
5951def test_normal_request_passes_through (client ):
6052 resp = client .get ("/ok" )
0 commit comments