"""月结取参锚点测试。 守的是:月结参数快照按**所属月月末**解析,而不是生成日 —— 用 date.today() 取参会让补生成/重新生成历史月份的经理分成与月工资随操作日期漂移, 同一月份两次生成金额不同(违背「参数按生效日期时点化」红线)。 """ from datetime import date from app.services.settlement_service import _month_end class TestMonthEnd: """YYYY-MM → 所属月最后一天(含大小月与闰年)。""" def test_大月31日(self) -> None: assert _month_end("2026-10") == date(2026, 10, 31) def test_小月30日(self) -> None: assert _month_end("2026-09") == date(2026, 9, 30) def test_二月平年28日(self) -> None: assert _month_end("2026-02") == date(2026, 2, 28) def test_二月闰年29日(self) -> None: assert _month_end("2028-02") == date(2028, 2, 29) def test_跨年十二月(self) -> None: assert _month_end("2026-12") == date(2026, 12, 31)