feat: finish mailbox evidence scanner mvp

This commit is contained in:
2026-06-02 02:24:39 +02:00
parent 226c045397
commit 7ab1f9deb9
11 changed files with 192 additions and 18 deletions

View File

@@ -72,6 +72,26 @@ class ParserTests(unittest.TestCase):
self.assertIsNotNone(candidate)
self.assertEqual(candidate.event_type, "notification.endpoint.unknown")
def test_challenge_response_stays_identity_uncertain(self) -> None:
_inbound, parsed, candidate = parse_message_file(FIXTURES / "challenge_response.eml", mailbox_id="test")
self.assertEqual(parsed.message_class, MessageClass.CHALLENGE_RESPONSE)
self.assertIsNotNone(candidate)
self.assertEqual(candidate.event_type, "interaction.unverified_actor_interaction")
self.assertEqual(candidate.assessment_subclass, "undef.identity_uncertain")
def test_parse_failure_is_reportable_diagnostic(self) -> None:
_inbound, parsed, candidate = parse_message_file(FIXTURES / "parse_failed.eml", mailbox_id="test")
self.assertEqual(parsed.message_class, MessageClass.PARSE_FAILED)
self.assertIsNotNone(candidate)
self.assertEqual(candidate.event_type, "diagnostic.message.parse_failed")
self.assertEqual(candidate.assessment_subclass, "undef.parse_failed")
def test_dsn_detail_fields_are_preserved_as_notes(self) -> None:
_inbound, parsed, _candidate = parse_message_file(FIXTURES / "hard_bounce.eml", mailbox_id="test")
self.assertIn("final_recipient=rfc822; missing@example.com", parsed.notes)
self.assertIn("action=failed", parsed.notes)
self.assertIn("diagnostic_code=smtp; 550 5.1.1 User unknown", parsed.notes)
if __name__ == "__main__":
unittest.main()