Ejemplo n.º 1
0
    def test_only_one_rule(self):
        tmp = Cs('a') ^ Cs('b')

        self.assertEqual(tmp({'a': '', 'b': ''}), False)
        self.assertEqual(tmp({'a': 'TEST', 'b': ''}), True)
        self.assertEqual(tmp({'a': '', 'b': 'TEST'}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': 'TEST'}), False)
Ejemplo n.º 2
0
    def test_expected_values_with_operator(self):
        tmp = Cs('a', a='OK') | Cs('b')

        self.assertEqual(tmp({'a': '', 'b': ''}), True)
        self.assertEqual(tmp({'a': 'OK', 'b': ''}), True)
        self.assertEqual(tmp({'a': 'NOT OK', 'b': ''}), False)
        self.assertEqual(tmp({'a': '', 'b': 'TEST'}), True)
        self.assertEqual(tmp({'a': 'OK', 'b': 'TEST'}), True)
        self.assertEqual(tmp({'a': 'NOT OK', 'b': 'TEST'}), True)
Ejemplo n.º 3
0
    def test_diffrent_operators_order_mixed_rules(self):
        tmp = (Cs('a') | Cs('b')) ^ Cs('c')

        self.assertEqual(tmp({'a': '', 'b': '', 'c': ''}), False)
        self.assertEqual(tmp({'a': 'TEST', 'b': '', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': 'TEST', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': 'TEST', 'c': 'TEST'}), False)
        self.assertEqual(tmp({'a': '', 'b': 'TEST', 'c': 'TEST'}), False)
        self.assertEqual(tmp({'a': '', 'b': '', 'c': 'TEST'}), True)
        self.assertEqual(tmp({'a': '', 'b': 'TEST', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': '', 'c': 'TEST'}), False)
Ejemplo n.º 4
0
    def test_mixed_rules(self):
        tmp = Cs('a') | Cs('b') ^ Cs('c')

        self.assertEqual(tmp({'a': '', 'b': '', 'c': ''}), False)
        self.assertEqual(tmp({'a': 'TEST', 'b': '', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': 'TEST', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': 'TEST', 'c': 'TEST'}), True)
        self.assertEqual(tmp({'a': '', 'b': 'TEST', 'c': 'TEST'}), False)
        self.assertEqual(tmp({'a': '', 'b': '', 'c': 'TEST'}), True)
        self.assertEqual(tmp({'a': '', 'b': 'TEST', 'c': ''}), True)
        self.assertEqual(tmp({'a': 'TEST', 'b': '', 'c': 'TEST'}), True)
Ejemplo n.º 5
0
    def test_expected_values_logic(self):
        tmp = Cs('a', b='TEST')

        self.assertEqual(tmp({'a': '', 'b': ''}), True)
        self.assertEqual(tmp({'a': 'A', 'b': ''}), False)
        self.assertEqual(tmp({'a': '', 'b': 'TEST'}), False)
        self.assertEqual(tmp({'a': 'A', 'b': 'TEST'}), True)
Ejemplo n.º 6
0
    def test_multiple_columns(self):
        tmp = Cs('a', 'b', 'c')

        self.assertEqual(tmp({'a': '', 'b': '', 'c': ''}), False)
        self.assertEqual(tmp({'a': '', 'b': 'OK', 'c': ''}), False)
        self.assertEqual(tmp({'a': '', 'b': '', 'c': 'OK'}), False)
        self.assertEqual(tmp({'a': 'OK', 'b': '', 'c': ''}), False)
        self.assertEqual(tmp({'a': 'OK', 'b': 'OK', 'c': ''}), False)
        self.assertEqual(tmp({'a': 'OK', 'b': 'OK', 'c': 'OK'}), True)
Ejemplo n.º 7
0
 def test_complex_execution_order(self):
     tmp = Cs('e') | ((Cs('a') | Cs('b')) ^ Cs('d')) | Cs('c')
     tmp_exe_order = ' '.join([str(obj) for obj in tmp.exe_order])
     self.assertEqual(tmp_exe_order,
                      "('e',) ('a',) ('b',) | ('d',) ^ | ('c',) |")
Ejemplo n.º 8
0
 class Rules(object):
     rule_1 = (Cs('a') | Cs('b')).error('A or B')
     rule_2 = Cs('c', b=87)