from __future__ import annotations import os import unittest from unittest.mock import patch from core.config import AppConfig from tests.helpers import workspace_tempdir class AppConfigTests(unittest.TestCase): def test_internal_secrets_persist_when_admin_credentials_change(self) -> None: with workspace_tempdir("config-") as temp_dir: base_env = { "DATA_DIR": str(temp_dir), "ADMIN": "root-one", "PASSWORD": "pass-one", } with patch.dict(os.environ, base_env, clear=False): first = AppConfig.load() changed_env = { "DATA_DIR": str(temp_dir), "ADMIN": "root-two", "PASSWORD": "pass-two", } with patch.dict(os.environ, changed_env, clear=False): second = AppConfig.load() self.assertEqual(first.session_secret, second.session_secret) self.assertEqual(first.encryption_key, second.encryption_key) self.assertEqual(second.super_admin_username, "root-two") self.assertEqual(second.super_admin_password, "pass-two") if __name__ == "__main__": unittest.main()