aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_report.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_report.py')
-rw-r--r--tests/test_report.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_report.py b/tests/test_report.py
index c8c39f8..6d1f845 100644
--- a/tests/test_report.py
+++ b/tests/test_report.py
@@ -2029,3 +2029,23 @@ class PersonalisedSubject(unittest.TestCase):
# the fix is a redaction rule with its own tests, not a passthrough
# quietly turned into a filter.
self.assertIn("alicejones", self._headers()["Subject"])
+
+
+class DestinationTable(unittest.TestCase):
+ def test_every_destination_names_the_types_it_accepts(self):
+ self.assertEqual(report.DESTINATIONS["abusedb"]["accepts"],
+ ("ipv4", "ipv6"))
+ self.assertEqual(report.DESTINATIONS["urlhaus"]["accepts"], ("url",))
+ self.assertEqual(report.DESTINATIONS["misp"]["accepts"], report.ALL_TYPES)
+
+ def test_misp_is_its_own_kind_and_the_vendors_are_api(self):
+ self.assertEqual(report.DESTINATIONS["misp"]["kind"], "misp")
+ self.assertEqual(report.DESTINATIONS["abusedb"]["kind"], "api")
+ self.assertEqual(report.DESTINATIONS["urlhaus"]["kind"], "api")
+
+ def test_all_types_covers_what_parse_emits(self):
+ # The five type strings parse.py writes. A sixth arriving without a
+ # decision about which destinations accept it would silently reach
+ # MISP only, so this test names them rather than deriving them.
+ self.assertEqual(report.ALL_TYPES,
+ ("ipv4", "ipv6", "domain", "url", "sha256"))