| 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()
|
|
|