tests/test_credential.py
| 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 | |