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