Skip to content

Commit d1cc45a

Browse files
authored
Merge pull request #3 from lsst-dm/tickets/DM-31215
DM-31215: Add health check endpoint to the server
2 parents 4385145 + 0b33ca0 commit d1cc45a

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

alertdb/server.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ def create_server(backend: AlertDatabaseBackend) -> FastAPI:
4444

4545
app = FastAPI()
4646

47+
@app.get("/v1/health")
48+
def healthcheck():
49+
return Response(content=b"OK")
50+
4751
@app.get("/v1/schemas/{schema_id}")
4852
def get_schema(schema_id: str):
4953
try:

tests/test_integration.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ def test_get_missing_schema(self):
106106
response = self._get_schema("bogus")
107107
self.assertEqual(response.status_code, 404)
108108

109+
def test_healthcheck(self):
110+
"""Test that the healthcheck endpoint returns 200."""
111+
response = self.client.get("/v1/health")
112+
self.assertEqual(response.status_code, 200)
113+
109114
def _get_alert(self, alert_id: str) -> requests.Response:
110115
return self.client.get(f"/v1/alerts/{alert_id}")
111116

tests/test_server.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import pytest
2+
from fastapi.testclient import TestClient
3+
4+
from alertdb.server import create_server
5+
from alertdb.storage import FileBackend
6+
7+
8+
@pytest.fixture
9+
def file_backend(tmp_path):
10+
"""Pytest fixture for a file-based backend"""
11+
yield FileBackend(str(tmp_path))
12+
13+
14+
def test_server_healthcheck(file_backend):
15+
"""Test that the server responds on the healthcheck endpoint."""
16+
server = create_server(file_backend)
17+
client = TestClient(server)
18+
response = client.get("/v1/health")
19+
assert response.status_code == 200

0 commit comments

Comments
 (0)