File size: 1,232 Bytes
e28c9e4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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()