tests/test_credential.py
888 B · 31 lines · python Raw
1 """Tests for credential dataclasses."""
2
3 from __future__ import annotations
4
5 from pqc_agent_wallet.credential import Credential, CredentialMetadata
6
7
8 def test_metadata_roundtrip() -> None:
9 meta = CredentialMetadata(
10 name="openai",
11 scheme="api-key",
12 service="openai",
13 description="prod key",
14 created_at="2026-01-01T00:00:00+00:00",
15 rotated_at="",
16 expires_at="",
17 tags=["prod", "llm"],
18 )
19 d = meta.to_dict()
20 restored = CredentialMetadata.from_dict(d)
21 assert restored == meta
22
23
24 def test_credential_to_safe_dict_redacts_value() -> None:
25 meta = CredentialMetadata(name="my-key")
26 cred = Credential(metadata=meta, value="sk-secret-value")
27 safe = cred.to_safe_dict()
28 assert safe["value"] == "<redacted>"
29 assert "sk-secret-value" not in str(safe)
30 assert safe["metadata"]["name"] == "my-key"
31