fix(asset): ClassificationStatus枚举兼容历史done值,避免500错误 #224

Merged
xiaoxia merged 2 commits from fix/classification-status-done-enum into develop 2026-07-12 11:01:28 +08:00
Owner

问题

生产环境有26个 classification_status = "done" 的历史数据,在 asset_repository.py:232 做枚举转换时报 ValueError,导致500错误。

根因:数据库早期版本存的是 done,当前枚举定义是 completed,中间缺少兼容层。

修复

ClassificationStatus 枚举增加 _missing_ 方法做兼容映射:

  • done/success/finished/completeCOMPLETED
  • fail/error/errFAILED
  • process/running/runPROCESSING
  • 其他未知值 → PENDING(兜底,不抛异常)

这样所有 ClassificationStatus(value) 调用点自动生效,无需逐个修改。

测试

新增23个单元测试覆盖:正常值、历史值(含大小写/空格)、未知值兜底、None/int 异常输入、字符串语义不变。

## 问题 生产环境有26个 `classification_status = "done"` 的历史数据,在 `asset_repository.py:232` 做枚举转换时报 ValueError,导致500错误。 根因:数据库早期版本存的是 `done`,当前枚举定义是 `completed`,中间缺少兼容层。 ## 修复 给 `ClassificationStatus` 枚举增加 `_missing_` 方法做兼容映射: - `done`/`success`/`finished`/`complete` → `COMPLETED` - `fail`/`error`/`err` → `FAILED` - `process`/`running`/`run` → `PROCESSING` - 其他未知值 → `PENDING`(兜底,不抛异常) 这样所有 `ClassificationStatus(value)` 调用点自动生效,无需逐个修改。 ## 测试 新增23个单元测试覆盖:正常值、历史值(含大小写/空格)、未知值兜底、None/int 异常输入、字符串语义不变。
xiaoxia added 1 commit 2026-07-11 23:27:53 +08:00
fix(asset): ClassificationStatus枚举兼容历史done值,避免500错误
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 2m19s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m14s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m36s
e5d627fc3e
生产环境发现26个classification_status='done'的历史脏数据导致枚举转换失败500。
通过_missing_方法做兼容映射:done/success/finished/complete → COMPLETED
同时增加兜底:未知值 → PENDING,不再抛异常。
xiaoxia added 1 commit 2026-07-12 09:14:57 +08:00
fix(test): 修正StrEnum str()断言,CI环境StrEnum行为不一致
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m5s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m30s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m9s
7c541910b3
xiaoxia merged commit da4b95a40a into develop 2026-07-12 11:01:28 +08:00
Sign in to join this conversation.