test : add unit tests for _gather_scan_summary in notification_service

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

还没有人认领这个 Issue。

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

评估

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

调研方向

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_summary from backend.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_message from the task record is included in the summary
  • Test that tool_name falls back to plugin_id when tool_name is not set
  • Use the existing test_db fixture (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

环境准备

从这里开始

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

utksh1/SecuScan 的其他 Issue

查看 utksh1/SecuScan 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

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