import expert """ Some rules to test with """ def test_is_final(facts): """Return true when 'final_flag' is set""" return facts.get('final_flag') class Rule_1(expert.Rule): """rule1 description, fires after rule2""" def match(self, facts): return facts.get('rule2_fired') def fire(self, facts): facts.set('rule1_fired', True) class Rule_2(expert.Rule): """rule2 description, fired first""" def match(self, facts): return facts.get('initial') def fire(self, facts): facts.set('rule2_fired', True) class Rule_3(expert.Rule): """rule3 description, fires after rule1 and rule2""" def match(self, facts): return facts.get('rule1_fired') def fire(self, facts): facts.set('rule3_fired', True) facts.set('final_flag', True) class Rule_4(expert.Rule): """rule4, it should never fire""" def match(self, facts): return False def fire(self, facts): pass