def test_TransformRuleSystem_load_rules(self): rules = transform_rules.TransformRuleSystem() some_rules = [(True, '', '', True, '', ''), (False, '', '', False, '', '')] rules.load_rules(some_rules) expected = [ transform_rules.TransformRule(*(True, (), {}, True, (), {})), transform_rules.TransformRule(*(False, (), {}, False, (), {})) ] assert rules.rules == expected
def test_TransformRuleSystem_append_rules(self): rules = transform_rules.TransformRuleSystem() some_rules = [(True, '', '', True, '', ''), (False, '', '', False, '', '')] rules.append_rules(some_rules) expected = [ transform_rules.TransformRule(*(True, (), {}, True, (), {})), transform_rules.TransformRule(*(False, (), {}, False, (), {})) ] assert_expected_same(rules.rules, expected)
def test_TransformRule_with_class_function_mix(self): """test to make sure that classes can be mixed with functions as predicates and actions""" class MyRule(object): def __init__(self, config=None): self.predicate_called = False self.action_called = False def predicate(self): self.predicate_called = True return True def action(self): self.action_called = True return True def my_predicate(): return True r = transform_rules.TransformRule(my_predicate, (), {}, MyRule, (), {}) eq_(r.predicate, my_predicate) eq_(r.action, r._action_implementation.action) self.assertNotEqual(r._action_implementation, r._predicate_implementation) r.act() # make sure that the class predicate function was not called ok_(not r._action_implementation.predicate_called) ok_(r._action_implementation.action_called)
def test_TransformRule_with_class(self): """test to make sure that classes can be used as predicates and actions""" class MyRule(object): def __init__(self, config=None): self.predicate_called = False self.action_called = False def predicate(self): self.predicate_called = True return True def action(self): self.action_called = True return True r = transform_rules.TransformRule( MyRule, (), {}, MyRule, (), {} ) assert r.predicate == r._predicate_implementation.predicate assert r.action == r._action_implementation.action assert r._action_implementation == r._predicate_implementation r.act() assert r._predicate_implementation.predicate_called assert r._action_implementation.action_called
def test_TransfromRule_init(self): r = transform_rules.TransformRule(True, (), {}, True, (), {}) assert_expected(r.predicate, True) assert_expected(r.predicate_args, ()) assert_expected(r.predicate_kwargs, {}) assert_expected(r.action, True) assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {}) r = transform_rules.TransformRule(True, '', '', True, '', '') assert_expected(r.predicate, True) assert_expected(r.predicate_args, ()) assert_expected(r.predicate_kwargs, {}) assert_expected(r.action, True) assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {}) r = transform_rules.TransformRule(foo, '', '', bar, '', '') assert_expected(r.predicate, foo) assert_expected(r.predicate_args, ()) assert_expected(r.predicate_kwargs, {}) assert_expected(r.action, bar) assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {}) r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', '', '', 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred, 'expected "foo" in %s' % repr_pred assert_expected(r.predicate_args, ()) assert_expected(r.predicate_kwargs, {}) repr_act = repr(r.action) assert 'bar' in repr_act, 'expected "bar" in %s' % repr_act assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {}) r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', (1, ), {'a': 13}, 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred, 'expected "foo" in %s' % repr_pred assert_expected(r.predicate_args, (1, )) assert_expected(r.predicate_kwargs, {'a': 13}) repr_act = repr(r.action) assert 'bar' in repr_act, 'expected "bar" in %s' % repr_act assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {}) r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', '1, 2', 'a=13', 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred, 'expected "foo" in %s' % repr_pred assert_expected(r.predicate_args, (1, 2)) assert_expected(r.predicate_kwargs, {'a': 13}) repr_act = repr(r.action) assert 'bar' in repr_act, 'expected "bar" in %s' % repr_act assert_expected(r.action_args, ()) assert_expected(r.action_kwargs, {})
def test_TransfromRule_init(self): r = transform_rules.TransformRule(True, (), {}, True, (), {}) assert r.predicate is True assert r.predicate_args == () assert r.predicate_kwargs == {} assert r.action is True assert r.action_args == () assert r.action_kwargs == {} r = transform_rules.TransformRule(True, '', '', True, '', '') assert r.predicate is True assert r.predicate_args == () assert r.predicate_kwargs == {} assert r.action is True assert r.action_args == () assert r.action_kwargs == {} r = transform_rules.TransformRule(foo, '', '', bar, '', '') assert r.predicate == foo assert r.predicate_args == () assert r.predicate_kwargs == {} assert r.action == bar assert r.action_args == () assert r.action_kwargs == {} r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', '', '', 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred assert r.predicate_args == () assert r.predicate_kwargs == {} repr_act = repr(r.action) assert 'bar' in repr_act assert r.action_args == () assert r.action_kwargs == {} r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', (1, ), {'a': 13}, 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred, 'expected "foo" in %s' % repr_pred assert r.predicate_args == (1, ) assert r.predicate_kwargs == {'a': 13} repr_act = repr(r.action) assert 'bar' in repr_act, 'expected "bar" in %s' % repr_act assert r.action_args == () assert r.action_kwargs == {} r = transform_rules.TransformRule( 'socorro.unittest.lib.test_transform_rules.foo', '1, 2', 'a=13', 'socorro.unittest.lib.test_transform_rules.bar', '', '') repr_pred = repr(r.predicate) assert 'foo' in repr_pred, 'expected "foo" in %s' % repr_pred assert r.predicate_args == (1, 2) assert r.predicate_kwargs == {'a': 13} repr_act = repr(r.action) assert 'bar' in repr_act, 'expected "bar" in %s' % repr_act assert r.action_args == () assert r.action_kwargs == {}
def test_TransformRule_with_class(self): """test to make sure that classes can be used as predicates and actions""" class MyRule(object): def __init__(self): self.predicate_called = False self.action_called = False def predicate(self): self.predicate_called = True return True def action(self): self.action_called = True return True r = transform_rules.TransformRule(MyRule, (), {}, MyRule, (), {}) eq_(r.predicate, r._predicitate_implementation.predicate) eq_(r.action, r._action_implementation.action) eq_(r._action_implementation, r._predicitate_implementation) r.act() ok_(r._predicitate_implementation.predicate_called) ok_(r._action_implementation.action_called)
def test_TransfromRule_act(self): rule = transform_rules.TransformRule(True, (), {}, True, (), {}) r = rule.act() assert_expected(r, (True, True)) rule = transform_rules.TransformRule(True, (), {}, False, (), {}) r = rule.act() assert_expected(r, (True, False)) def pred1(s, d, fred): return bool(fred) s = {'dwight': 96} d = {} rule = transform_rules.TransformRule(pred1, (True), {}, False, (), {}) r = rule.act(s, d) assert_expected(r, (True, False)) rule = transform_rules.TransformRule(pred1, (), {'fred': True}, False, (), {}) r = rule.act(s, d) assert_expected(r, (True, False)) rule = transform_rules.TransformRule(pred1, (), {'fred': False}, False, (), {}) r = rule.act(s, d) assert_expected(r, (False, None)) def copy1(s, d, s_key, d_key): d[d_key] = s[s_key] return True rule = transform_rules.TransformRule(pred1, (), {'fred': True}, copy1, (), 's_key="dwight", d_key="wilma"') r = rule.act(s, d) assert_expected(r, (True, True)) assert_expected(s['dwight'], 96) assert_expected(d['wilma'], 96)