From 18930e72e1d02a83fe987688e99594d8611311f9 Mon Sep 17 00:00:00 2001 From: tsygankoviva Date: Thu, 18 Jun 2026 11:51:26 +0300 Subject: [PATCH] =?UTF-8?q?AURORA-1098:=20=D0=B4=D0=B0=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D1=8F=20=D1=8D=D1=82=D0=B0=D0=BF=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B2=D0=B5=D1=80=D0=BD=D0=BE=20=D1=81=20=D1=87=D0=B0?= =?UTF-8?q?=D1=81=D0=BE=D0=B2=D1=8B=D0=BC=20=D0=BF=D0=BE=D1=8F=D1=81=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/src/domain/schemas.py | 8 +++--- .../integration/test_form_phases_api_smoke.py | 28 ++++++++++++++++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/api/src/domain/schemas.py b/api/src/domain/schemas.py index 761f2de..7af29c6 100644 --- a/api/src/domain/schemas.py +++ b/api/src/domain/schemas.py @@ -402,15 +402,15 @@ class FormPhaseCreate(BaseModel): phase_code: str role: FormPhaseRole column_keys: list[str] - opens_at: datetime - closes_at: datetime + opens_at: date + closes_at: date class FormPhaseUpdate(BaseModel): role: FormPhaseRole | None = None column_keys: list[str] | None = None - opens_at: datetime | None = None - closes_at: datetime | None = None + opens_at: date | None = None + closes_at: date | None = None class AuditLogBase(BaseModel): diff --git a/api/tests/integration/test_form_phases_api_smoke.py b/api/tests/integration/test_form_phases_api_smoke.py index 92426ab..2c4452d 100644 --- a/api/tests/integration/test_form_phases_api_smoke.py +++ b/api/tests/integration/test_form_phases_api_smoke.py @@ -1,3 +1,5 @@ +from datetime import UTC, datetime + import pytest @@ -83,20 +85,29 @@ def test_form_phases_delete_forbidden(client, isp_tokens): def test_form_phases_create(client, admin_tokens): + opened_at = "2026-01-01T00:00:00+03:00" + closed_at = "2026-12-31T00:00:00+03:00" body = { "budget_form_id": 1, "sheet": "AHR", "phase_code": "new_phase", "role": "DFIP", "column_keys": ["plan.q1"], - "opens_at": "2026-01-01T00:00:00Z", - "closes_at": "2026-12-31T00:00:00Z", + "opens_at": opened_at[:10], + "closes_at": closed_at[:10], } response = client.post( "/api/v1/stages/form/1", json=body, headers=_auth_headers(admin_tokens), ) + body["opens_at"] = str( + datetime.fromisoformat(opened_at).astimezone(UTC) + ).replace('+00:00', 'Z').replace(" ", "T") + body["closes_at"] = str( + datetime.fromisoformat(closed_at).astimezone(UTC) + ).replace('+00:00', 'Z').replace(" ", "T") + assert response.status_code == 200 payload = response.json() assert "success" in payload @@ -107,20 +118,29 @@ def test_form_phases_create(client, admin_tokens): def test_form_phases_update(client, admin_tokens): + opened_at = "2026-01-01T00:00:00+03:00" + closed_at = "2026-12-31T00:00:00+03:00" body = { "budget_form_id": 1, "sheet": "AHR", "phase_code": "test", "role": "EXECUTOR_RF", "column_keys": ["plan.q1"], - "opens_at": "2026-01-01T00:00:00Z", - "closes_at": "2026-12-31T00:00:00Z", + "opens_at": opened_at, + "closes_at": closed_at, } response = client.patch( "/api/v1/stages/form/1/AHR/test", json=body, headers=_auth_headers(admin_tokens), ) + body["opens_at"] = str( + datetime.fromisoformat(opened_at).astimezone(UTC) + ).replace('+00:00', 'Z').replace(" ", "T") + body["closes_at"] = str( + datetime.fromisoformat(closed_at).astimezone(UTC) + ).replace('+00:00', 'Z').replace(" ", "T") + assert response.status_code == 200 payload = response.json()