Implemented some enhancement request and fixed some bugs
Fixed #2 : Variables are not recognized when inside a rule token Fixed #15 : Rule: rete attributes are lost when a new ontology is created Fixed #14 : ReteNetwork: Format rules must not be added to Rete network Fixed #16 : DefConcept: Variables are not recognized when they are keyword arguments Fixed #4 : Comparison are not correctly set when comparison property is a concept Fixed #14 : Parser: merge FunctionParser.NamesNode and ExpressionParser.NamesNode Fixed #18 : Parser: Add SourceCodeNode test to UnrecognizedNodeParser Fixed #20 : At startup Number concept is saved in db a numerous number of time Fixed #21 : CacheManager: I can remove all elements from a ListIfNeededCache and fill it again Fixed #22 : CacheManager: I can remove all elements from a SetCache and fill it again Fixed #23 : HistoryManager: history() no longer works Fixed #24 : HistoryManager: history() no longer works after creating an exec rule Fixed #25 : SheerkaMemory: Use MemoryObject instead of sheerka.local Fixed #26 : Debugger: add the list all available services.. Fixed #27 : CONCEPTS_GRAMMARS_ENTRY does not seems to be in use any more Fixed #28 : Give order to services
This commit is contained in:
@@ -638,15 +638,26 @@ class TestReteNetwork(TestUsingMemoryBasedSheerka):
|
||||
network.remove_rule(rule3)
|
||||
assert len(list(p_node3.activations)) == 0
|
||||
|
||||
def test_rule_is_added_to_rete_network_when_it_is_created(self):
|
||||
def test_exec_rule_is_added_to_rete_network_when_it_is_created(self):
|
||||
sheerka, context, rule = self.init_test().with_exec_rules(("rule_name", "id.attr == 'value'", 'True')).unpack()
|
||||
evaluation_service = sheerka.services[SheerkaEvaluateRules.NAME]
|
||||
rete_network = evaluation_service.network
|
||||
|
||||
assert len(rete_network.pnodes) == 1
|
||||
assert rete_network.pnodes[0].rules[0] == rule
|
||||
assert rule.rete_net == rete_network
|
||||
assert len(rule.rete_p_nodes) > 0
|
||||
|
||||
def test_rule_is_removed_to_rete_network_when_it_is_deleted(self):
|
||||
def test_format_rule_is_not_added_to_rete_network_when_it_is_created(self):
|
||||
sheerka, context, rule = self.init_test().with_format_rules(("rule_name", "id.attr == 'value'", 'True')).unpack()
|
||||
evaluation_service = sheerka.services[SheerkaEvaluateRules.NAME]
|
||||
rete_network = evaluation_service.network
|
||||
|
||||
assert len(rete_network.pnodes) == 0
|
||||
assert rule.rete_net is None
|
||||
assert len(rule.rete_p_nodes) == 0
|
||||
|
||||
def test_rule_is_removed_from_rete_network_when_it_is_deleted(self):
|
||||
sheerka, context, rule = self.init_test().with_exec_rules(("id.attr == 'value'", 'True')).unpack()
|
||||
evaluation_service = sheerka.services[SheerkaEvaluateRules.NAME]
|
||||
rete_network = evaluation_service.network
|
||||
@@ -654,6 +665,15 @@ class TestReteNetwork(TestUsingMemoryBasedSheerka):
|
||||
sheerka.remove_rule(context, rule)
|
||||
assert len(rete_network.pnodes) == 0
|
||||
|
||||
def test_rule_is_removed_from_rete_network_when_it_is_deleted_from_another_ontology(self):
|
||||
sheerka, context, rule = self.init_test().with_exec_rules(("id.attr == 'value'", 'True')).unpack()
|
||||
evaluation_service = sheerka.services[SheerkaEvaluateRules.NAME]
|
||||
rete_network = evaluation_service.network
|
||||
|
||||
sheerka.push_ontology(context, "new ontology")
|
||||
sheerka.remove_rule(context, rule)
|
||||
assert len(rete_network.pnodes) == 0
|
||||
|
||||
def test_rules_are_removed_upon_ontology_removal(self):
|
||||
sheerka, context = self.init_test().unpack()
|
||||
service = sheerka.services[SheerkaRuleManager.NAME]
|
||||
|
||||
Reference in New Issue
Block a user