test : add unit tests for _gather_scan_summary in notification_service
还没有人认领这个 Issue。
- #2428 来自 @tmdeveloper007 —— 已关闭,未合并
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 35/100
调研方向
Read backend/secuscan/notification_service.py to inspect _gather_scan_summary() and testing/backend/unit/test_notification_service.py for its existing fixtures and test patterns. Use the test_db fixture to cover the missing task, summary fields, severity counts, report link, error message, and tool name fallback. The issue reports a linked pull request, so check its status before starting; done means these behaviors have direct unit tests.
由索引模型根据 Issue 内容生成。
描述
Summary of What Needs to be Done:
Add unit tests for the _gather_scan_summary() async helper function in backend/secuscan/notification_service.py. This function collects task status, severity counts, and a report link for a scan completion webhook. It queries the database for task and finding records.
The existing test file testing/backend/unit/test_notification_service.py has 36 tests that cover process_scan_completion_webhook and other delivery functions, but _gather_scan_summary is not directly imported or tested — it is only exercised indirectly through process_scan_completion_webhook.
Changes that Need to be Made:
Add a new test section (or new test class) in testing/backend/unit/test_notification_service.py:
- Import
_gather_scan_summaryfrombackend.secuscan.notification_service - Test that it returns None when the task_id does not exist in the database
- Test that it returns a summary dict with correct structure when the task exists
- Test that severity_counts correctly aggregates findings by severity
- Test that the report_link includes the task_id and uses the configured base_url
- Test that
error_messagefrom the task record is included in the summary - Test that
tool_namefalls back toplugin_idwhentool_nameis not set - Use the existing
test_dbfixture (AsyncDatabase) to set up test data
Impact that it would Provide:
- Directly validates the summary aggregation logic independent of webhook delivery
- Ensures severity counts are computed correctly regardless of webhook configuration
- Provides clear unit-level coverage for the helper before it is used in more complex flows
Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.
- 主要语言
- Python
- 星标
- 36
- 派生
- 234
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
utksh1/SecuScan 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 83/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 78/100
-
area:frontend good first issue level:beginner priority:low type:testing
难度 2/5 1-3 小时 新手友好度 76/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 82/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 83/100
维护者通常 1 天内回复
-
comp/desktop P3 type/feature
难度 2/5 1-3 小时 新手友好度 78/100
NousResearch/hermes-agent#154285 ·
维护者通常 1 天内回复
-
docs: qualify copied and custom kubectl debug policy notes可能已有人在做 @nym01 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
kubescape/cel-admission-library#166 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
SACGF/variantgrid#2804 · 1 条评论 ·
维护者通常 1 天内回复
-
[BUG] HTTP lifecycle dispatch treats a NO_PROXY-only environment as corporate egress and skips the resolve-and-pinned session可能已有人在做 @bodapatisaikrishna 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复