CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
|
|
|
|
def test_app_imports_with_production_like_absolute_paths(tmp_path: Path) -> None:
|
|
frontend_dist = tmp_path / "frontend-dist"
|
|
data_dir = tmp_path / "data"
|
|
backup_dir = data_dir / "backups"
|
|
fixture_dir = data_dir / "fixtures"
|
|
diagnostics_dir = data_dir / "diagnostics"
|
|
uploads_dir = data_dir / "uploads"
|
|
log_dir = tmp_path / "logs"
|
|
frontend_dist.mkdir(parents=True)
|
|
data_dir.mkdir(parents=True)
|
|
backup_dir.mkdir()
|
|
fixture_dir.mkdir()
|
|
diagnostics_dir.mkdir()
|
|
uploads_dir.mkdir()
|
|
log_dir.mkdir()
|
|
(frontend_dist / "index.html").write_text(
|
|
"<!doctype html><title>TuxDMX</title>",
|
|
encoding="utf-8",
|
|
)
|
|
|
|
env = os.environ.copy()
|
|
env.update(
|
|
{
|
|
"PYTHONPATH": str(ROOT / "backend"),
|
|
"TUXDMX_FRONTEND_DIST": str(frontend_dist),
|
|
"TUXDMX_DATA_DIR": str(data_dir),
|
|
"TUXDMX_BACKUP_DIR": str(backup_dir),
|
|
"TUXDMX_FIXTURE_CACHE_DIR": str(fixture_dir),
|
|
"TUXDMX_DIAGNOSTICS_DIR": str(diagnostics_dir),
|
|
"TUXDMX_UPLOADS_DIR": str(uploads_dir),
|
|
"TUXDMX_LOG_DIR": str(log_dir),
|
|
"TUXDMX_DATABASE_URL": f"sqlite+aiosqlite:///{(data_dir / 'tuxdmx.db').as_posix()}",
|
|
}
|
|
)
|
|
|
|
subprocess.run(
|
|
[
|
|
sys.executable,
|
|
"-c",
|
|
(
|
|
"from app.core.config import get_settings; "
|
|
"get_settings.cache_clear(); "
|
|
"import app.main; "
|
|
"settings = get_settings(); "
|
|
"assert settings.frontend_dist.is_absolute(); "
|
|
"assert settings.data_dir.is_absolute(); "
|
|
"assert settings.backup_dir.is_absolute(); "
|
|
"assert settings.diagnostics_dir.is_absolute(); "
|
|
"assert settings.uploads_dir.is_absolute(); "
|
|
"print('ok')"
|
|
),
|
|
],
|
|
check=True,
|
|
cwd=ROOT,
|
|
env=env,
|
|
)
|