Esempio n. 1
0
class TestVERP(unittest.TestCase):
    """Test header VERP detection."""

    layer = ConfigLayer

    def setUp(self):
        self._mlist = create_list('*****@*****.**')
        self._verper = StandardVERP()

    def test_no_verp(self):
        # The empty set is returned when there is no VERP headers.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_verp_in_to(self):
        # A VERP address is found in the To header.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_delivered_to(self):
        # A VERP address is found in the Delivered-To header.
        msg = mfs("""\
From: [email protected]
Delivered-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_envelope_to(self):
        # A VERP address is found in the Envelope-To header.
        msg = mfs("""\
From: [email protected]
Envelope-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_apparently_to(self):
        # A VERP address is found in the Apparently-To header.
        msg = mfs("""\
From: [email protected]
Apparently-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_with_empty_header(self):
        # A VERP address is found, but there's an empty header.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To:

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_no_verp_with_empty_header(self):
        # There's an empty header, and no VERP address is found.
        msg = mfs("""\
From: [email protected]
To:

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_verp_with_non_match(self):
        # A VERP address is found, but a header had a non-matching pattern.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_no_verp_with_non_match(self):
        # No VERP address is found, and a header had a non-matching pattern.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_multiple_verps(self):
        # More than one VERP address was found in the same header.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_multiple_verps_different_values(self):
        # More than one VERP address was found in the same header with
        # different values.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**', '*****@*****.**']))

    def test_multiple_verps_different_values_different_headers(self):
        # More than one VERP address was found in different headers with
        # different values.
        msg = mfs("""\
From: [email protected]
To: [email protected]
Apparently-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**', '*****@*****.**']))
Esempio n. 2
0
class TestVERP(unittest.TestCase):
    """Test header VERP detection."""

    layer = ConfigLayer

    def setUp(self):
        self._mlist = create_list('*****@*****.**')
        self._verper = StandardVERP()

    def test_no_verp(self):
        # The empty set is returned when there is no VERP headers.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_verp_in_to(self):
        # A VERP address is found in the To header.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_delivered_to(self):
        # A VERP address is found in the Delivered-To header.
        msg = mfs("""\
From: [email protected]
Delivered-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_envelope_to(self):
        # A VERP address is found in the Envelope-To header.
        msg = mfs("""\
From: [email protected]
Envelope-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_in_apparently_to(self):
        # A VERP address is found in the Apparently-To header.
        msg = mfs("""\
From: [email protected]
Apparently-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_verp_with_empty_header(self):
        # A VERP address is found, but there's an empty header.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To:

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_no_verp_with_empty_header(self):
        # There's an empty header, and no VERP address is found.
        msg = mfs("""\
From: [email protected]
To:

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_verp_with_non_match(self):
        # A VERP address is found, but a header had a non-matching pattern.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_no_verp_with_non_match(self):
        # No VERP address is found, and a header had a non-matching pattern.
        msg = mfs("""\
From: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg), set())

    def test_multiple_verps(self):
        # More than one VERP address was found in the same header.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**']))

    def test_multiple_verps_different_values(self):
        # More than one VERP address was found in the same header with
        # different values.
        msg = mfs("""\
From: [email protected]
To: [email protected]
To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**', '*****@*****.**']))

    def test_multiple_verps_different_values_different_headers(self):
        # More than one VERP address was found in different headers with
        # different values.
        msg = mfs("""\
From: [email protected]
To: [email protected]
Apparently-To: [email protected]

""")
        self.assertEqual(self._verper.get_verp(self._mlist, msg),
                         set(['*****@*****.**', '*****@*****.**']))