补齐源快照、资料预演、正式导入及工资核算的依赖链路。 新增版本化输入、逐段 FIFO、生成锁和结构化当月调整, 并提供默认关闭的周期采集、有限重试及 Windows 托管。 原始客户资料、私有配置及首页改动不纳入本次提交。 BREAKING CHANGE: 升级前需应用新增迁移,并通过 PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。 旧单批次核算默认关闭;历史兼容需显式启用 PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
16 lines
726 B
Python
16 lines
726 B
Python
"""只接受明确驱动状态,不把含密码的未知异常当作可重试错误。"""
|
|
|
|
import pytest
|
|
|
|
from app.services.tplus.errors import classify_source_error
|
|
|
|
|
|
@pytest.mark.parametrize("state,expected", [("08S01", "SOURCE_CONNECTION_LOST"), ("HYT00", "SOURCE_TIMEOUT"), ("28000", "SOURCE_AUTH_ERROR"), ("42S22", "SOURCE_SCHEMA_ERROR"), ("42000", "READ_ERROR")])
|
|
def test_源错误分类只依赖固定状态(state, expected):
|
|
assert classify_source_error(Exception(state, "password=不可回显")) == expected
|
|
|
|
|
|
def test_未知异常不宽泛自动重试():
|
|
assert classify_source_error(RuntimeError("secret=不可回显")) == "READ_ERROR"
|
|
assert classify_source_error(TimeoutError()) == "SOURCE_TIMEOUT"
|