From cc05d450a2444339fe55917ad8e6da431850ab66 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Mon, 26 Oct 2026 13:37:52 +0000 Subject: [PATCH] Fix multi-certificate PEM chain imports --- server/tests/test_routes_extra.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/tests/test_routes_extra.py b/server/tests/test_routes_extra.py index 2162099..49622c0 100644 --- a/server/tests/test_routes_extra.py +++ b/server/tests/test_routes_extra.py @@ -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"])