diff --git a/tests/test_api.py b/tests/test_api.py index c63e48b..7e11514 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -1106,6 +1106,50 @@ def test_task_full_project_deploy_command_none_when_not_set(client): assert data["project_deploy_command"] is None +# --------------------------------------------------------------------------- +# KIN-INFRA-009 — project_deploy_runtime/host/path в TaskFull +# --------------------------------------------------------------------------- + +def test_task_full_includes_project_deploy_runtime(client): + """GET /api/tasks/{id}/full включает project_deploy_runtime из таблицы projects.""" + client.patch("/api/projects/p1", json={"deploy_runtime": "docker"}) + r = client.get("/api/tasks/P1-001/full") + assert r.status_code == 200 + data = r.json() + assert "project_deploy_runtime" in data + assert data["project_deploy_runtime"] == "docker" + + +def test_task_full_includes_project_deploy_host_and_path(client): + """GET /api/tasks/{id}/full включает project_deploy_host и project_deploy_path.""" + client.patch("/api/projects/p1", json={"deploy_host": "10.0.0.5", "deploy_path": "/srv/app"}) + r = client.get("/api/tasks/P1-001/full") + assert r.status_code == 200 + data = r.json() + assert data["project_deploy_host"] == "10.0.0.5" + assert data["project_deploy_path"] == "/srv/app" + + +def test_task_full_deploy_runtime_fields_none_when_not_set(client): + """GET /api/tasks/{id}/full возвращает None для всех deploy-полей если не заданы.""" + r = client.get("/api/tasks/P1-001/full") + assert r.status_code == 200 + data = r.json() + assert data["project_deploy_runtime"] is None + assert data["project_deploy_host"] is None + assert data["project_deploy_path"] is None + + +def test_task_full_deploy_runtime_and_command_coexist(client): + """GET /api/tasks/{id}/full возвращает одновременно deploy_runtime и deploy_command.""" + client.patch("/api/projects/p1", json={"deploy_runtime": "python", "deploy_command": "make deploy"}) + r = client.get("/api/tasks/P1-001/full") + assert r.status_code == 200 + data = r.json() + assert data["project_deploy_runtime"] == "python" + assert data["project_deploy_command"] == "make deploy" + + # --------------------------------------------------------------------------- # KIN-067 — PATCH obsidian_vault_path + sync/obsidian не возвращает 400 # ---------------------------------------------------------------------------