Files
state-hub/tests/test_tpsc_router.py

69 lines
2.4 KiB
Python

async def _create_domain(client, slug="tpsc-domain", name="TPSC Domain"):
response = await client.post("/domains/", json={"slug": slug, "name": name})
assert response.status_code == 201, response.text
return response.json()
async def _create_repo(client, domain_slug="tpsc-domain", slug="tpsc-repo"):
response = await client.post(
"/repos/",
json={
"domain_slug": domain_slug,
"slug": slug,
"name": "TPSC Repo",
},
)
assert response.status_code == 201, response.text
return response.json()
async def test_tpsc_router_catalog_ingest_snapshot_and_gdpr_report(client) -> None:
await _create_domain(client)
await _create_repo(client)
catalog_response = await client.post(
"/tpsc/catalog/",
json={
"slug": "example-service",
"name": "Example Service",
"pricing_model": "paid",
"gdpr_maturity": "unknown",
},
)
assert catalog_response.status_code == 201, catalog_response.text
catalog = catalog_response.json()
assert catalog["slug"] == "example-service"
assert catalog["gdpr_warning"] is True
ingest_response = await client.post(
"/tpsc/ingest/",
json={
"repo_slug": "tpsc-repo",
"entries": [
{
"service_slug": "example-service",
"purpose": "test processing",
"auth_type": "api_key",
}
],
},
)
assert ingest_response.status_code == 201, ingest_response.text
snapshot = ingest_response.json()
assert snapshot["repo_id"] is not None
assert snapshot["entry_count"] == 1
assert snapshot["entries"][0]["gdpr_warning"] is True
assert snapshot["entries"][0]["pricing_model"] == "paid"
snapshots_response = await client.get("/tpsc/snapshots/", params={"repo_slug": "tpsc-repo"})
assert snapshots_response.status_code == 200, snapshots_response.text
assert snapshots_response.json()[0]["entries"][0]["service_slug"] == "example-service"
report_response = await client.get("/tpsc/report/gdpr")
assert report_response.status_code == 200, report_response.text
report = report_response.json()
assert report["total_services"] == 1
assert report["warning_count"] == 1
assert report["by_maturity"] == {"unknown": 1}
assert report["warnings"][0]["repo_slug"] == "tpsc-repo"