Ejemplo n.º 1
0
 def test_create_recursive(self):
     rule_def = {
         'headers': [
             {
                 'name': 'to',
                 'substring': '*****@*****.**'
             },
             {
                 'name': 'cc',
                 'substring': '*****@*****.**'
             },
             {
                 'name': 'to',
                 'regex': 'recipient.*@example.com',
             },
             {
                 'name': 'to',
                 'value': '*****@*****.**',
             },
         ],
     }
     r = rules.Headers(rule_def, {})
     self.assertIsInstance(r._matchers[0], rules.HeaderSubString)
     self.assertIsInstance(r._matchers[1], rules.HeaderSubString)
     self.assertIsInstance(r._matchers[2], rules.HeaderRegex)
     self.assertIsInstance(r._matchers[3], rules.HeaderExactValue)
     self.assertEqual(len(r._matchers), 4)
Ejemplo n.º 2
0
 def test_check_no_match(self):
     rule_def = {'or': {'rules': []}}
     r = rules.Headers(rule_def, {})
     r1 = mock.Mock()
     r1.check.return_value = False
     r._matchers.append(r1)
     r2 = mock.Mock()
     r2.check.return_value = False
     r._matchers.append(r2)
     self.assertFalse(r.check(self.msg))
Ejemplo n.º 3
0
 def test_check_no_short_circuit(self):
     rule_def = {'or': {'rules': []}}
     r = rules.Headers(rule_def, {})
     r1 = mock.Mock()
     r1.check.return_value = True
     r._matchers.append(r1)
     r2 = mock.Mock()
     r2.check.return_value = True
     r._matchers.append(r2)
     self.assertTrue(r.check(self.msg))
     r1.check.assert_called_once_with(self.msg)
     r2.check.assert_called_once_with(self.msg)
Ejemplo n.º 4
0
 def test_check_no_matchers(self):
     rule_def = {'or': {'rules': []}}
     r = rules.Headers(rule_def, {})
     self.assertFalse(r.check(self.msg))