Skip to content

Commit 9a1fb6b

Browse files
committed
Enable coverage reporting via Codecov and cleanup nits remaining changes
1 parent 4c6031b commit 9a1fb6b

3 files changed

Lines changed: 14 additions & 20 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
jobs:
1010
test:
1111
runs-on: ubuntu-latest
12-
services:
12+
services:
1313
redis:
1414
image: redis:7
1515
ports:

api-server/pyproject.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ dependencies = [
1515
"python-dotenv>=1.1.1",
1616
"structlog>=25.4.0",
1717
"uvicorn>=0.35.0",
18-
"redis[hiredis]>=6.0.0"]
18+
"redis[hiredis]>=6.0.0"
19+
]
1920

2021
[dependency-groups]
2122
dev = [
2223
"ruff>=0.12.2",
2324
"pytest>=8.0.0",
2425
"httpx>=0.27.0",
25-
"pytest-cov>=5.0.0"]
26+
"pytest-cov>=5.0.0"
27+
]

api-server/tests/test_unhandled_exceptions_middleware.py

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,17 @@
44
from fastapi.testclient import TestClient
55
from 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
109
async def fail(request: Request):
1110
raise RuntimeError("boom")
1211

13-
# 2. ValueError
1412
async def fail_value_error(request: Request):
1513
raise ValueError("Invalid value test")
1614

17-
# 3. KeyError
1815
async def fail_key_error(request: Request):
1916
raise KeyError("Missing key test")
2017

21-
# 4. Healthy endpoint
2218
async 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+
3536
def 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

4341
def 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

5146
def 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

5951
def test_normal_request_passes_through(client):
6052
resp = client.get("/ok")

0 commit comments

Comments
 (0)