Fix multi-certificate PEM chain imports
This commit is contained in:
@@ -380,8 +380,18 @@ class RouteExtraTests(unittest.TestCase):
|
|||||||
async with api_client() as client:
|
async with api_client() as client:
|
||||||
with oidc_user("alice"):
|
with oidc_user("alice"):
|
||||||
vault_id = await _vault(client)
|
vault_id = await _vault(client)
|
||||||
|
payload = {"filename": "chain.pem", "pem": pem}
|
||||||
response = await client.post(
|
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
|
assert response.status_code == 200, response.text
|
||||||
result = response.json()
|
result = response.json()
|
||||||
@@ -401,6 +411,7 @@ class RouteExtraTests(unittest.TestCase):
|
|||||||
assert intermediate_row["issuer_id"] == root_row["id"]
|
assert intermediate_row["issuer_id"] == root_row["id"]
|
||||||
assert leaf_row["issuer_id"] == intermediate_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["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.
|
# Re-importing duplicates also repairs self-links left by older imports.
|
||||||
model = await Certificate.get(id=leaf_row["id"])
|
model = await Certificate.get(id=leaf_row["id"])
|
||||||
|
|||||||
Reference in New Issue
Block a user