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
23 lines
866 B
Python
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
|