def test_008a_ruler(self): rules = [ Upper('normal'), Upper('to_upper'), ] ruler = Ruler(Upper, rules) self.assertEqual(ruler.type, 'upper') self.assertEqual(len(ruler.rules), 2) ruler.apply(self.data) self.assertEqual(self.data['normal'], 'MESSAGE') self.assertEqual(self.data['to_upper'], 'UPPERCASE')
def test_008b_ruler_from_dict(self): rules = { 'type': 'lookup', 'rules': [ {'fieldname': 'normal', 'table': {'message': 'lookup'}}, {'fieldname': 'to_upper', 'table': {'uppercase': 'lookup'}}, ] } ruler = Ruler.from_dict(rules) self.assertEqual(ruler.type, 'lookup') self.assertEqual(len(ruler.rules), 2) ruler.apply(self.data) self.assertEqual(self.data['normal'], 'lookup') self.assertEqual(self.data['to_upper'], 'lookup')
def test_008c_ruler_with_global_params(self): class MyTestRule(_Rule): def _configure(self, test, g_test): self.g_test = g_test rules = { 'type': 'mytestrule', 'rules': [ {'test': 'val1', 'fieldname': 'test_field'}, {'test': 'val2', 'fieldname': 'test_field'}, ], 'global_params': { 'g_test': True } } ruler = Ruler.from_dict(rules) for rule in ruler.rules: self.assertTrue(rule.g_test)