SACC / tests /test_config.py
cacode's picture
Deploy updated SCU course catcher
e28c9e4 verified
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()