Add TLS reports capabilities

This commit is contained in:
2026-06-23 11:49:58 -03:00
parent 5c1dc95c36
commit f4ae9f8532
20 changed files with 1158 additions and 75 deletions
+29 -1
View File
@@ -7,7 +7,7 @@ from sqlalchemy.orm import Session
from app.config import Settings
from app.db import Base
from app.attachment_extractor import ExtractedReport
from app.message_processor import _store_report
from app.message_processor import _store_report, _store_tls_report
from app.models import MailMessage
@@ -32,6 +32,34 @@ def test_duplicate_sha_detection():
assert second_duplicate == report
def test_tls_report_storage_and_duplicate_sha_detection():
engine = create_engine("sqlite:///:memory:", future=True)
Base.metadata.create_all(engine)
session = Session(engine)
mail = MailMessage(inbox_id="anamaka", imap_uid="1", folder="DMARC", status="skipped")
session.add(mail)
session.commit()
payload = Path("tests/fixtures/sample_tlsrpt.json").read_bytes()
extracted = ExtractedReport("report.json", payload, "1" * 64)
settings = Settings.model_validate({"alerts": {"email": {"enabled": False}}})
report, duplicate = _store_tls_report(session, settings, _TLSInbox(), mail, extracted)
session.commit()
second, second_duplicate = _store_tls_report(session, settings, _TLSInbox(), mail, extracted)
assert report is not None
assert duplicate is None
assert report.domain == "anamaka.net"
assert report.policies[0].total_successful_session_count == 5
assert second is None
assert second_duplicate == report
class _Inbox:
id = "tukutoi"
domain = "tukutoi.com"
class _TLSInbox:
id = "anamaka"
domain = "anamaka.net"