test: pytest测试框架 + API测试
- 测试框架:SQLite内存数据库,每个测试自动建表/清理 - auth测试:登录/注册/token验证(6个用例) - kpis测试:增删改查+重复编码检查(6个用例) - maps测试:创建/编辑/发布/连线/同维度限制(6个用例) - 后端修复:KPI创建时检查编码唯一性(原为数据库抛500)
This commit is contained in:
Binary file not shown.
@@ -99,6 +99,10 @@ def get_kpi(kpi_id: int, db: Session = Depends(get_db)):
|
||||
|
||||
@router.post("")
|
||||
def create_kpi(data: dict, db: Session = Depends(get_db), user=WRITE_ROLES):
|
||||
# 检查编码唯一性
|
||||
existing = db.query(KPIDefinition).filter(KPIDefinition.kpi_code == data.get("kpi_code", "")).first()
|
||||
if existing:
|
||||
raise HTTPException(400, f"KPI编码 {data['kpi_code']} 已存在")
|
||||
kpi = KPIDefinition(**data)
|
||||
db.add(kpi)
|
||||
db.commit()
|
||||
|
||||
Reference in New Issue
Block a user