arm-core/api/tests/test_domain_consolidation_periods.py
Andrey Epifancev 9411d9d2ae feat(consolidation): создание консолидации, список по ГК, карточка версии
POST /consolidations (версия №1 INITIATED, периметр из текущих членов ГСК, история,
CONSOLIDATION_CREATE с consolidation_version_id), GET /company-groups/{id}/consolidations
и GET /consolidations/versions/{id}. reporting_date по OQ-40; подхват документов — заглушка
bind_confirmed до Task 6, чек-лист в карточке пуст до Task 8. UNIQUE периода -> 409
CONSOLIDATION_EXISTS; RequestAudit.record принимает consolidation_version_id.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 03:57:52 +04:00

23 lines
866 B
Python

"""Отчётная дата консолидации по году и кварталу (spec consolidations-api «Создание консолидации»; OQ-40)."""
import datetime
import pytest
from src.domain.consolidation_periods import reporting_date
from src.models.enums import PeriodQuarter
@pytest.mark.parametrize(
("year", "quarter", "expected"),
[
(2024, PeriodQuarter.Q1, datetime.date(2024, 4, 1)),
(2024, PeriodQuarter.Q2, datetime.date(2024, 7, 1)),
(2024, PeriodQuarter.Q3, datetime.date(2024, 10, 1)),
(2024, PeriodQuarter.Q4, datetime.date(2025, 1, 1)),
(2100, PeriodQuarter.Q4, datetime.date(2101, 1, 1)),
],
)
def test_reporting_date_is_first_day_after_quarter(year: int, quarter: PeriodQuarter, expected: datetime.date) -> None:
assert reporting_date(year, quarter) == expected