feat(slice-1): FastAPI factory + /healthz; self-migrate at startup (INV-1/§6.4)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from app.main import create_app
|
||||
|
||||
|
||||
def test_healthz_ok_on_migrated_empty_db(fresh_db_url):
|
||||
app = create_app(database_url=fresh_db_url)
|
||||
with TestClient(app) as client:
|
||||
resp = client.get("/healthz")
|
||||
assert resp.status_code == 200
|
||||
assert resp.json() == {"status": "ok"}
|
||||
|
||||
|
||||
def test_startup_migrates_from_empty(fresh_db_url):
|
||||
# create_app on an empty DB must self-migrate so /healthz reports current.
|
||||
app = create_app(database_url=fresh_db_url)
|
||||
with TestClient(app) as client:
|
||||
assert client.get("/healthz").status_code == 200
|
||||
# the schema_migrations row exists -> migrations ran at startup
|
||||
import psycopg
|
||||
|
||||
with psycopg.connect(fresh_db_url) as conn:
|
||||
n = conn.execute("SELECT count(*) FROM schema_migrations").fetchone()[0]
|
||||
assert n >= 1
|
||||
Reference in New Issue
Block a user