36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from pathlib import Path
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from app.main import app
|
|
|
|
|
|
def test_project_var_artifact_path_is_served(tmp_path, monkeypatch):
|
|
from app import main
|
|
|
|
project_root = tmp_path / "project"
|
|
source_root = tmp_path / "source"
|
|
artifact = project_root / "var" / "uploads" / "datasets" / "case" / "labels" / "label.txt"
|
|
artifact.parent.mkdir(parents=True)
|
|
artifact.write_text("ok", encoding="utf-8")
|
|
source_root.mkdir()
|
|
|
|
original = main.settings
|
|
patched = type(original)(
|
|
project_root=project_root,
|
|
source_root=source_root,
|
|
db_path=original.db_path,
|
|
log_dir=original.log_dir,
|
|
weights_root=original.weights_root,
|
|
task_conda_env=original.task_conda_env,
|
|
mmseg_conda_env=original.mmseg_conda_env,
|
|
backend_conda_env=original.backend_conda_env,
|
|
weight_mode=original.weight_mode,
|
|
enable_shell_tasks=original.enable_shell_tasks,
|
|
)
|
|
monkeypatch.setattr(main, "settings", patched)
|
|
|
|
response = TestClient(app).get("/api/artifacts/var/uploads/datasets/case/labels/label.txt")
|
|
assert response.status_code == 200
|
|
assert response.text == "ok"
|