Fix multi-certificate PEM chain imports

This commit is contained in:
2026-10-26 14:21:10 +00:00
parent 0b21910e2b
commit cc05d450a2
+12 -1
View File
@@ -380,8 +380,18 @@ class RouteExtraTests(unittest.TestCase):
async with api_client() as client:
with oidc_user("alice"):
vault_id = await _vault(client)
payload = {"filename": "chain.pem", "pem": pem}
response = await client.post(
f"/api/vaults/{vault_id}/import", json={"filename": "chain.pem", "pem": pem}
f"/api/vaults/{vault_id}/import", json={**payload, "dry_run": True}
)
assert response.status_code == 200, response.text
preview = response.json()["items"]
assert len(preview) == 3
assert all(not item["duplicate"] for item in preview)
response = await client.post(
f"/api/vaults/{vault_id}/import",
json={**payload, "selected": [item["index"] for item in preview]},
)
assert response.status_code == 200, response.text
result = response.json()
@@ -401,6 +411,7 @@ class RouteExtraTests(unittest.TestCase):
assert intermediate_row["issuer_id"] == root_row["id"]
assert leaf_row["issuer_id"] == intermediate_row["id"]
assert all(cert["issuer_id"] != cert["id"] for cert in certs.values())
assert all(cert["key_id"] is None for cert in certs.values())
# Re-importing duplicates also repairs self-links left by older imports.
model = await Certificate.get(id=leaf_row["id"])