VirtForemanBackend / tests /test_supabase_mapping.py
Dirbol's picture
chore: pre-release — full project lifecycle (CRUD, history, docs, tests)
1d5d841
Raw
History Blame Contribute Delete
1.53 kB
"""Mapping unit tests for Supabase column bridges."""
from __future__ import annotations
from app.services.supabase_service import project_from_supabase, project_to_supabase
def test_roundtrip_preserves_canonical_fields():
canonical = {
"id": "uuid-1",
"object_name": "Жилой дом № 5",
"contract_no": "12-2026/БН",
"client": "ООО «Заказчик»",
"technical_supervisor": "Иванов И.И.",
"contractor": "ООО «Подряд»",
"work_producer": "Петров П.П.",
"chief_engineer": "Сидоров С.С.",
"created_at": "2026-06-22T10:00:00+00:00",
}
row = project_to_supabase(canonical)
assert row["name"] == "Жилой дом № 5"
assert row["contract_number"] == "12-2026/БН"
roundtripped = project_from_supabase({
"id": "uuid-1",
"name": row["name"],
"contract_number": row["contract_number"],
"client": row["client"],
"tech_supervisor": row["tech_supervisor"],
"contractor": row["contractor"],
"responsible_foreman": row["responsible_foreman"],
"chief_engineer": row["chief_engineer"],
"created_at": row["created_at"],
})
assert roundtripped["id"] == "uuid-1"
assert roundtripped["object_name"] == "Жилой дом № 5"
assert roundtripped["work_producer"] == "Петров П.П."
# canonical fields not in pre-existing schema are dropped naturally
assert "start_date" not in roundtripped