46 lines
1.5 KiB
Python
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()
|