Flash out API test suite

This commit is contained in:
2026-06-20 04:01:24 -04:00
parent 78d738b0ee
commit fc394b8555
19 changed files with 1818 additions and 51 deletions
+76
View File
@@ -0,0 +1,76 @@
from datetime import datetime, timedelta
from app.models.journal import EntityType
from app.crud.crud_journal import journal
def test_search_journal_filters_entries(auth_client, db):
yesterday = datetime.utcnow() - timedelta(days=1)
matching = journal.log_change(
db,
EntityType.PPR,
10,
"Matching PPR change",
"tower",
"127.0.0.1",
)
other = journal.log_change(
db,
EntityType.USER,
20,
"Other user change",
"admin",
"127.0.0.1",
)
matching.entry_dt = yesterday
other.entry_dt = datetime.utcnow()
db.commit()
response = auth_client.get(
"/api/v1/journal/search/all",
params={
"date_from": yesterday.date().isoformat(),
"date_to": yesterday.date().isoformat(),
"entity_type": "PPR",
"entity_id": 10,
"user": "tower",
},
)
assert response.status_code == 200
entries = response.json()
assert len(entries) == 1
assert entries[0]["entry"] == "Matching PPR change"
def test_search_journal_rejects_invalid_entity_type(auth_client):
response = auth_client.get(
"/api/v1/journal/search/all",
params={"entity_type": "NOT_A_THING"},
)
assert response.status_code == 400
assert "Invalid entity_type" in response.json()["detail"]
def test_get_user_and_entity_journal(auth_client, db):
journal.log_change(db, EntityType.PPR, 55, "PPR audit entry", "tower", None)
user_response = auth_client.get("/api/v1/journal/user/tower")
entity_response = auth_client.get("/api/v1/journal/PPR/55")
assert user_response.status_code == 200
assert user_response.json()[0]["entry"] == "PPR audit entry"
assert entity_response.status_code == 200
body = entity_response.json()
assert body["entity_type"] == "PPR"
assert body["entity_id"] == 55
assert body["total_entries"] == 1
assert body["entries"][0]["entry"] == "PPR audit entry"
def test_get_entity_journal_rejects_invalid_entity_type(auth_client):
response = auth_client.get("/api/v1/journal/NOPE/1")
assert response.status_code == 400
assert "Invalid entity_type" in response.json()["detail"]