50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""Tests for secret redaction helpers."""
|
|
|
|
from opensquilla.onboarding.redaction import (
|
|
REDACTED_PLACEHOLDER,
|
|
redact_channel_entry,
|
|
redact_memory_embedding_payload,
|
|
redact_provider_payload,
|
|
)
|
|
|
|
|
|
def test_provider_api_key_is_redacted():
|
|
out = redact_provider_payload({"api_key": "sk-secret", "model": "x"})
|
|
assert out["api_key"] == REDACTED_PLACEHOLDER
|
|
assert out["model"] == "x"
|
|
|
|
|
|
def test_empty_api_key_redacts_to_empty_string():
|
|
out = redact_provider_payload({"api_key": "", "model": "x"})
|
|
assert out["api_key"] == ""
|
|
|
|
|
|
def test_memory_embedding_remote_key_is_redacted():
|
|
out = redact_memory_embedding_payload(
|
|
{"provider": "openai", "remote": {"api_key": "mem-secret"}}
|
|
)
|
|
assert out["remote"]["api_key"] == REDACTED_PLACEHOLDER
|
|
|
|
|
|
def test_telegram_secrets_are_redacted():
|
|
out = redact_channel_entry(
|
|
"telegram",
|
|
{"name": "tg", "token": "abcd", "webhook_secret_token": "wxyz"},
|
|
)
|
|
assert out["token"] == REDACTED_PLACEHOLDER
|
|
assert out["webhook_secret_token"] == REDACTED_PLACEHOLDER
|
|
assert out["name"] == "tg"
|
|
|
|
|
|
def test_unknown_channel_type_redacts_nothing():
|
|
payload = {"name": "x", "token": "y"}
|
|
out = redact_channel_entry("not-a-type", payload)
|
|
assert out == payload
|
|
|
|
|
|
def test_input_dict_is_not_mutated():
|
|
src = {"api_key": "s", "model": "m"}
|
|
out = redact_provider_payload(src)
|
|
assert src["api_key"] == "s"
|
|
assert out["api_key"] == REDACTED_PLACEHOLDER
|