generated from coulomb/repo-seed
69 lines
2.4 KiB
Python
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"
|