chore(repo): replace app symlink/submodule with in-repo app directory; enable committing app/Dockerfile and tooling\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This commit is contained in:
torsten committed 2026-07-17 13:13:02 +02:00
1 parent a12270ad01
commit ae2c674b81
25 files changed
+3417 -1

No files matched your search

+58
View File
@@ -0,0 +1,58 @@
import importlib
import os
import sys
import tempfile
import unittest
from pathlib import Path
class ConfigEnvLoadingTests(unittest.TestCase):
def setUp(self) -> None:
self._old_cwd = Path.cwd()
self._keys = [
"SCW_ACCESS_KEY",
"SCW_SECRET_KEY",
"SCW_DEFAULT_ORGANIZATION_ID",
"SCW_DEFAULT_PROJECT_ID",
"SCW_SERVERLESS",
]
self._backup = {k: os.environ.get(k) for k in self._keys}
def tearDown(self) -> None:
os.chdir(self._old_cwd)
for key, value in self._backup.items():
if value is None:
os.environ.pop(key, None)
else:
os.environ[key] = value
def _clear_env(self) -> None:
for key in self._keys:
os.environ.pop(key, None)
def test_import_uses_dotenv_fallback(self) -> None:
self._clear_env()
with tempfile.TemporaryDirectory() as tmp:
os.chdir(tmp)
Path(".env").write_text(
"SCW_ACCESS_KEY=key0\n"
"SCW_SECRET_KEY=key1\n"
"SCW_DEFAULT_ORGANIZATION_ID=key2\n"
"SCW_DEFAULT_PROJECT_ID=key3\n"
"SCW_SERVERLESS=key4\n"
)
sys.modules.pop("migration_pipeline.config", None)
config = importlib.import_module("migration_pipeline.config")
self.assertEqual(config.SCW_SERVERLESS, "key4")
self.assertEqual(
config.BASE_URL,
"https://api.scaleway.ai/key4/v1/chat/completions",
)
def test_import_fails_when_required_env_missing(self) -> None:
self._clear_env()
with tempfile.TemporaryDirectory() as tmp:
os.chdir(tmp)
sys.modules.pop("migration_pipeline.config", None)
with self.assertRaisesRegex(RuntimeError, "SCW_ACCESS_KEY"):
importlib.import_module("migration_pipeline.config")