import base64 import pytest from lyra_worker.crypto import PLACEHOLDER_SECRET_KEY, secret_key_problem _GOOD = base64.b64encode(b"x" * 32).decode() _LEGACY = "MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY=" @pytest.fixture(autouse=True) def _clean_env(monkeypatch): monkeypatch.delenv("LYRA_SECRET_KEY", raising=False) def test_missing_key_is_fatal(monkeypatch): assert secret_key_problem() == ("LYRA_SECRET_KEY is not set", True) def test_placeholder_is_fatal(monkeypatch): monkeypatch.setenv("LYRA_SECRET_KEY", PLACEHOLDER_SECRET_KEY) msg, fatal = secret_key_problem() assert fatal is True and "placeholder" in msg def test_wrong_length_is_fatal(monkeypatch): monkeypatch.setenv("LYRA_SECRET_KEY", base64.b64encode(b"short").decode()) msg, fatal = secret_key_problem() assert fatal is True and "32 bytes" in msg def test_legacy_public_key_warns_not_fatal(monkeypatch): monkeypatch.setenv("LYRA_SECRET_KEY", _LEGACY) msg, fatal = secret_key_problem() assert fatal is False and "PUBLIC" in msg def test_good_key_is_fine(monkeypatch): monkeypatch.setenv("LYRA_SECRET_KEY", _GOOD) assert secret_key_problem() is None