AURORA-1098: датавремя этапа сохраняется верно с часовым поясом #3
@ -402,15 +402,15 @@ class FormPhaseCreate(BaseModel):
|
|||||||
phase_code: str
|
phase_code: str
|
||||||
role: FormPhaseRole
|
role: FormPhaseRole
|
||||||
column_keys: list[str]
|
column_keys: list[str]
|
||||||
opens_at: datetime
|
opens_at: date
|
||||||
closes_at: datetime
|
closes_at: date
|
||||||
|
|
||||||
|
|
||||||
class FormPhaseUpdate(BaseModel):
|
class FormPhaseUpdate(BaseModel):
|
||||||
role: FormPhaseRole | None = None
|
role: FormPhaseRole | None = None
|
||||||
column_keys: list[str] | None = None
|
column_keys: list[str] | None = None
|
||||||
opens_at: datetime | None = None
|
opens_at: date | None = None
|
||||||
closes_at: datetime | None = None
|
closes_at: date | None = None
|
||||||
|
|
||||||
|
|
||||||
class AuditLogBase(BaseModel):
|
class AuditLogBase(BaseModel):
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
from datetime import UTC, datetime
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
@ -83,20 +85,29 @@ def test_form_phases_delete_forbidden(client, isp_tokens):
|
|||||||
|
|
||||||
|
|
||||||
def test_form_phases_create(client, admin_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 = {
|
body = {
|
||||||
"budget_form_id": 1,
|
"budget_form_id": 1,
|
||||||
"sheet": "AHR",
|
"sheet": "AHR",
|
||||||
"phase_code": "new_phase",
|
"phase_code": "new_phase",
|
||||||
"role": "DFIP",
|
"role": "DFIP",
|
||||||
"column_keys": ["plan.q1"],
|
"column_keys": ["plan.q1"],
|
||||||
"opens_at": "2026-01-01T00:00:00Z",
|
"opens_at": opened_at[:10],
|
||||||
"closes_at": "2026-12-31T00:00:00Z",
|
"closes_at": closed_at[:10],
|
||||||
}
|
}
|
||||||
response = client.post(
|
response = client.post(
|
||||||
"/api/v1/stages/form/1",
|
"/api/v1/stages/form/1",
|
||||||
json=body,
|
json=body,
|
||||||
headers=_auth_headers(admin_tokens),
|
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
|
assert response.status_code == 200
|
||||||
payload = response.json()
|
payload = response.json()
|
||||||
assert "success" in payload
|
assert "success" in payload
|
||||||
@ -107,20 +118,29 @@ def test_form_phases_create(client, admin_tokens):
|
|||||||
|
|
||||||
|
|
||||||
def test_form_phases_update(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 = {
|
body = {
|
||||||
"budget_form_id": 1,
|
"budget_form_id": 1,
|
||||||
"sheet": "AHR",
|
"sheet": "AHR",
|
||||||
"phase_code": "test",
|
"phase_code": "test",
|
||||||
"role": "EXECUTOR_RF",
|
"role": "EXECUTOR_RF",
|
||||||
"column_keys": ["plan.q1"],
|
"column_keys": ["plan.q1"],
|
||||||
"opens_at": "2026-01-01T00:00:00Z",
|
"opens_at": opened_at,
|
||||||
"closes_at": "2026-12-31T00:00:00Z",
|
"closes_at": closed_at,
|
||||||
}
|
}
|
||||||
response = client.patch(
|
response = client.patch(
|
||||||
"/api/v1/stages/form/1/AHR/test",
|
"/api/v1/stages/form/1/AHR/test",
|
||||||
json=body,
|
json=body,
|
||||||
headers=_auth_headers(admin_tokens),
|
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
|
assert response.status_code == 200
|
||||||
payload = response.json()
|
payload = response.json()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user