fix(asset): ClassificationStatus枚举兼容历史done值,避免500错误 #224
Reference in New Issue
Block a user
Delete Branch "fix/classification-status-done-enum"
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"的历史数据,在asset_repository.py:232做枚举转换时报 ValueError,导致500错误。根因:数据库早期版本存的是
done,当前枚举定义是completed,中间缺少兼容层。修复
给
ClassificationStatus枚举增加_missing_方法做兼容映射:done/success/finished/complete→COMPLETEDfail/error/err→FAILEDprocess/running/run→PROCESSINGPENDING(兜底,不抛异常)这样所有
ClassificationStatus(value)调用点自动生效,无需逐个修改。测试
新增23个单元测试覆盖:正常值、历史值(含大小写/空格)、未知值兜底、None/int 异常输入、字符串语义不变。