test : add unit tests for _gather_scan_summary in notification_service

Aperta
#2,423 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

  • #2428 di @tmdeveloper007 — chiusa senza merge

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
fastapi, python
Ambito
backend, testing

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
36
Fork
234
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di utksh1/SecuScan

Tutte le issue di utksh1/SecuScan

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.