Files
chisup/tests/test_config_and_structure.py
T
2026-07-04 23:30:53 +08:00

46 lines
1.5 KiB
Python

import importlib
import unittest
from unittest.mock import patch
from app import create_app
class ConfigAndStructureTest(unittest.TestCase):
def test_create_app_loads_environment_config(self):
env = {
"CHIS_BASE_URL": "http://chis.example.test/chis",
"CHIS_PUBLIC_KEY": "PUBLIC_KEY_PLACEHOLDER",
"REDIS_URL": "redis://localhost:6379/0",
"LOG_DIR": "logs",
"ARCHIVE_DIR": "archives",
"CHIS_PROXY": "socks5h://127.0.0.1:1080",
}
with patch.dict("os.environ", env, clear=False):
app = create_app({"TESTING": True})
self.assertEqual(app.config["CHIS_BASE_URL"], env["CHIS_BASE_URL"])
self.assertEqual(app.config["CHIS_PUBLIC_KEY"], env["CHIS_PUBLIC_KEY"])
self.assertEqual(app.config["REDIS_URL"], env["REDIS_URL"])
self.assertEqual(app.config["LOG_DIR"], env["LOG_DIR"])
self.assertEqual(app.config["ARCHIVE_DIR"], env["ARCHIVE_DIR"])
self.assertEqual(app.config["CHIS_PROXY"], env["CHIS_PROXY"])
def test_architecture_packages_are_importable(self):
package_names = [
"app.middleware",
"app.services",
"app.mappers",
"app.chis",
"app.repositories",
"app.validators",
]
for package_name in package_names:
with self.subTest(package_name=package_name):
self.assertIsNotNone(importlib.import_module(package_name))
if __name__ == "__main__":
unittest.main()