Files
PayrollManagementSystem/backend/tests/unit/test_settlement_helpers.py
T

29 lines
1.0 KiB
Python
Raw Normal View History

"""月结取参锚点测试。
守的是:月结参数快照按**所属月月末**解析,而不是生成日 —— 用 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)