test : add unit tests for NetworkPolicyEngine audit export methods

Abierto
#2,447 2 comentarios 0 reacciones 1 asignado Ver en GitHub

@Rafiaminhaj ya está trabajando en esto.

Desde el 15/8/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Summary of What Needs to be Done:
Add unit tests for the export_audit_log and clear_audit_entries methods of NetworkPolicyEngine in backend/secuscan/network_policy.py. These methods are not covered by the existing test_network_policy.py suite which focuses on check_access and policy enforcement logic.

The methods require patching the backend.secuscan.config module (which imports Pydantic) so the engine can be instantiated with test settings. Both methods have substantial logic worth testing: export_audit_log formats audit entries as JSON or CSV, and clear_audit_entries removes all entries from memory.

Changes that Need to be Made:
Create testing/backend/unit/test_network_policy_audit_export.py:

  • Patch sys.modules['backend.secuscan.config'] with a mock config module before importing NetworkPolicyEngine and PolicyAction
  • export_audit_log(format="json"): Test that it returns valid JSON with expected fields (timestamp, plugin_id, task_id, action, dest_ip, dest_port, reason)
  • export_audit_log(format="csv"): Test that it returns valid CSV with header row and data rows
  • export_audit_log(format="csv"): Test that empty audit log produces just the header row
  • clear_audit_entries(): Test that it removes all entries after entries have been added
  • clear_audit_entries(): Test that calling it on an already-empty log is safe (no exception)
  • get_audit_entries() as a companion: verify it returns entries before clear and empty list after
  • Use a temp file path for audit_log_path and max_audit_entries=1000 in the engine constructor
  • Import the real production class directly (not mocked)
  • Run with python3 -m pytest testing/backend/unit/test_network_policy_audit_export.py -v --noconftest

Impact that it would Provide:

  • Tests audit log export functionality that is currently completely untested
  • Prevents regressions in the JSON and CSV export formatting logic
  • Ensures the clear operation is idempotent and safe on empty state
  • Complements the existing TestAuditLogging class which only tests audit entry creation, not export/clear

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

Lenguaje dominante
Python
Estrellas
36
Forks
234
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de utksh1/SecuScan

Todos los issues de utksh1/SecuScan

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.