fix(asset): AssetStatus枚举兼容历史uploaded值,避免500 #227
Reference in New Issue
Block a user
Delete Branch "fix/asset-status-enum-compat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
健康检查发现生产环境有26个
classification_status = "done"枚举转换失败的500错误,同类问题AssetStatus也存在:数据库里有uploaded历史值,但Python枚举只定义了uploading/ready/processing/error,直接AssetStatus("uploaded")会抛异常导致500。修复方案
给
AssetStatus枚举新增_missing_方法,做历史值兼容:影响范围
packages/domain/entities.py:AssetStatus枚举加_missing_方法AssetStatus(model.status)的地方自动生效,无需改调用点测试
新增
tests/unit/test_asset_status_enum.py,27个测试用例,覆盖:审查结论:✅ 通过(可合并)
审查范围
packages/domain/entities.py:AssetStatus 新增_missing_兼容方法tests/unit/test_asset_status_enum.py:27 个测试用例P0/P1 问题
无。
核心确认点
_missing_+ strip().lower() 归一化 + READY 兜底),枚举兼容模式统一 ✅_missing_仅在正常值匹配失败时触发,已有逻辑完全不受影响P2(不阻塞合并)
entities.py文件权限从 644 变 755,没必要改,顺手的话可以改回来P3
processing出现在历史值映射列表里是冗余的(它本身就是正常值,永远走不到 missing),不影响功能7c2e330fafto33b588ff96e30866518bto2a2de99ea1