add proxy auth env var tests

This commit is contained in:
Josh Hawkins 2026-03-24 12:06:31 -05:00
parent 4860a4a882
commit a563b9b186

View File

@ -2,6 +2,7 @@ import unittest
from frigate.api.auth import resolve_role from frigate.api.auth import resolve_role
from frigate.config import HeaderMappingConfig, ProxyConfig from frigate.config import HeaderMappingConfig, ProxyConfig
from frigate.config.env import FRIGATE_ENV_VARS
class TestProxyRoleResolution(unittest.TestCase): class TestProxyRoleResolution(unittest.TestCase):
@ -91,3 +92,39 @@ class TestProxyRoleResolution(unittest.TestCase):
headers = {"x-remote-role": "group_unknown"} headers = {"x-remote-role": "group_unknown"}
role = resolve_role(headers, self.proxy_config, self.config_roles) role = resolve_role(headers, self.proxy_config, self.config_roles)
self.assertEqual(role, self.proxy_config.default_role) self.assertEqual(role, self.proxy_config.default_role)
class TestProxyAuthSecretEnvString(unittest.TestCase):
def setUp(self):
self._original_env_vars = dict(FRIGATE_ENV_VARS)
def tearDown(self):
FRIGATE_ENV_VARS.clear()
FRIGATE_ENV_VARS.update(self._original_env_vars)
def test_auth_secret_env_substitution(self):
"""auth_secret resolves FRIGATE_ env vars via EnvString."""
FRIGATE_ENV_VARS["FRIGATE_PROXY_SECRET"] = "my_secret_value"
config = ProxyConfig(auth_secret="{FRIGATE_PROXY_SECRET}")
self.assertEqual(config.auth_secret, "my_secret_value")
def test_auth_secret_env_embedded_in_string(self):
"""auth_secret resolves env vars embedded in a larger string."""
FRIGATE_ENV_VARS["FRIGATE_SECRET_PART"] = "abc123"
config = ProxyConfig(auth_secret="prefix-{FRIGATE_SECRET_PART}-suffix")
self.assertEqual(config.auth_secret, "prefix-abc123-suffix")
def test_auth_secret_plain_string(self):
"""auth_secret accepts a plain string without substitution."""
config = ProxyConfig(auth_secret="literal_secret")
self.assertEqual(config.auth_secret, "literal_secret")
def test_auth_secret_none(self):
"""auth_secret defaults to None."""
config = ProxyConfig()
self.assertIsNone(config.auth_secret)
def test_auth_secret_unknown_var_raises(self):
"""auth_secret raises KeyError for unknown env var references."""
with self.assertRaises(Exception):
ProxyConfig(auth_secret="{FRIGATE_NONEXISTENT_VAR}")