Initial project import
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT_DIR = Path(__file__).resolve().parents[1]
|
||||
ROOT_CONFIG_FILE = ROOT_DIR / "config.json"
|
||||
|
||||
|
||||
class ConfigLoadingTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
cls._created_root_config = False
|
||||
if not ROOT_CONFIG_FILE.exists():
|
||||
ROOT_CONFIG_FILE.write_text(json.dumps({"auth-key": "test-auth"}), encoding="utf-8")
|
||||
cls._created_root_config = True
|
||||
|
||||
from services import config as config_module
|
||||
|
||||
cls.config_module = config_module
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls) -> None:
|
||||
if cls._created_root_config and ROOT_CONFIG_FILE.exists():
|
||||
ROOT_CONFIG_FILE.unlink()
|
||||
|
||||
def test_load_settings_ignores_directory_config_path(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
base_dir = Path(tmp_dir)
|
||||
data_dir = base_dir / "data"
|
||||
config_dir = base_dir / "config.json"
|
||||
os_auth_key = "env-auth"
|
||||
|
||||
config_dir.mkdir()
|
||||
|
||||
module = self.config_module
|
||||
old_base_dir = module.BASE_DIR
|
||||
old_data_dir = module.DATA_DIR
|
||||
old_config_file = module.CONFIG_FILE
|
||||
old_env_auth_key = module.os.environ.get("CHATGPT2API_AUTH_KEY")
|
||||
try:
|
||||
module.BASE_DIR = base_dir
|
||||
module.DATA_DIR = data_dir
|
||||
module.CONFIG_FILE = config_dir
|
||||
module.os.environ["CHATGPT2API_AUTH_KEY"] = os_auth_key
|
||||
|
||||
settings = module._load_settings()
|
||||
|
||||
self.assertEqual(settings.auth_key, os_auth_key)
|
||||
self.assertEqual(settings.refresh_account_interval_minute, 5)
|
||||
finally:
|
||||
module.BASE_DIR = old_base_dir
|
||||
module.DATA_DIR = old_data_dir
|
||||
module.CONFIG_FILE = old_config_file
|
||||
if old_env_auth_key is None:
|
||||
module.os.environ.pop("CHATGPT2API_AUTH_KEY", None)
|
||||
else:
|
||||
module.os.environ["CHATGPT2API_AUTH_KEY"] = old_env_auth_key
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user