test : add edge case tests for _serialize_workflow in routes_json_helpers

未关闭
#2,238 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

  • #2243 来自 @tmdeveloper007 —— 已关闭,未合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
fastapi, python
领域
testing

调研方向

Read backend/secuscan/routes_json_helpers.py and the existing tests in testing/backend/unit/test_routes_workflow_serialize.py. Add the listed cases for optional fields, enabled coercion, empty steps, and malformed steps, then run that test file. Done means each expected result is covered and the tests pass; the issue notes it is being handled by tmdeveloper007, and linked pull request #2243 is closed and unmerged.

由索引模型根据 Issue 内容生成。

描述

Summary of What Needs to be Done:
The backend/secuscan/routes_json_helpers.py module exposes a _serialize_workflow function that serializes a database workflow row for the frontend API. Existing tests cover the happy path and some edge cases, but several edge cases remain untested: None values for optional fields (created_at, last_run_at, schedule_seconds), empty row with missing keys, and the enabled field coercion.

Changes that Need to be Made:
Add edge case tests (testing/backend/unit/test_routes_workflow_serialize.py):

  • _serialize_workflow with None schedule_seconds returns None for schedule_seconds
  • _serialize_workflow with None created_at returns None for created_at
  • _serialize_workflow with None last_run_at returns None for last_run_at
  • _serialize_workflow with missing optional keys does not raise KeyError
  • _serialize_workflow converts enabled="0" or enabled=0 to False (bool coercion)
  • _serialize_workflow converts enabled="1" or enabled=1 to True (bool coercion)
  • _serialize_workflow with empty steps_json returns [] for steps
  • _serialize_workflow with malformed steps_json skips invalid steps

Impact that it would Provide:

  • Tests the serialization of workflow rows used by the frontend workflow list API
  • Documents expected behavior for None and edge-case field values from the database
  • Ensures the function is robust against schema variations
  • Complements existing tests for _parse_workflow_steps

Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.

主要语言
Python
星标
36
派生
234
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

utksh1/SecuScan 的其他 Issue

查看 utksh1/SecuScan 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。