Flash out API test suite
This commit is contained in:
@@ -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"]
|
||||
Reference in New Issue
Block a user