cac2dad17f
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
142 lines
3.7 KiB
Python
142 lines
3.7 KiB
Python
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
|
|
|
|
|
class TestSheerkaNonRegDisplay(TestUsingMemoryBasedSheerka):
|
|
|
|
def test_i_can_display_results_when_return_values_processing_is_on(self, capsys):
|
|
init = [
|
|
"def concept one as 1",
|
|
]
|
|
|
|
sheerka = self.init_scenario(init)
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("one")
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == "ReturnValue(who=evaluators.OneSuccess, status=True, value=(1001)one)\n"
|
|
|
|
def test_i_can_display_multiple_concepts_description(self, capsys):
|
|
init = [
|
|
"def concept foo as 1",
|
|
"def concept foo as 2",
|
|
]
|
|
sheerka = self.init_scenario(init)
|
|
capsys.readouterr()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("desc(foo)")
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == """id : 1001
|
|
name : foo
|
|
key : foo
|
|
definition: None
|
|
type : None
|
|
body : 1
|
|
where : None
|
|
pre : None
|
|
post : None
|
|
ret : None
|
|
vars : []
|
|
props : {}
|
|
id : 1002
|
|
name : foo
|
|
key : foo
|
|
definition: None
|
|
type : None
|
|
body : 2
|
|
where : None
|
|
pre : None
|
|
post : None
|
|
ret : None
|
|
vars : []
|
|
props : {}
|
|
"""
|
|
|
|
def test_i_can_describe_a_rule(self, capsys):
|
|
sheerka = self.get_sheerka()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("desc(r:|1:)")
|
|
captured = capsys.readouterr()
|
|
|
|
assert captured.out == """id : 1
|
|
name : Print return values
|
|
type : print
|
|
predicate: __rets
|
|
action : list(__rets)
|
|
priority : 4
|
|
compiled : True
|
|
enabled : True
|
|
"""
|
|
|
|
def test_i_can_display_multiple_success(self, capsys):
|
|
init = [
|
|
"def concept foo as 1",
|
|
"def concept foo as 2",
|
|
]
|
|
sheerka = self.init_scenario(init)
|
|
capsys.readouterr()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("foo")
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == """ReturnValue(who=evaluators.Concept, status=True, value=(1001)foo)
|
|
ReturnValue(who=evaluators.Concept, status=True, value=(1002)foo)
|
|
"""
|
|
|
|
def test_i_can_list_ontologies(self, capsys):
|
|
init = [
|
|
"push_ontology('test 1')",
|
|
"push_ontology('test 2')",
|
|
"pop_ontology()",
|
|
"push_ontology('test 3')",
|
|
]
|
|
sheerka = self.init_scenario(init)
|
|
capsys.readouterr()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("ontologies()")
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == """test 3
|
|
test 1
|
|
#unit_test#
|
|
__default__
|
|
"""
|
|
|
|
def test_i_can_display_objects_in_memory(self, capsys):
|
|
init = [
|
|
"def concept one as 1",
|
|
"def concept two as 2",
|
|
"one",
|
|
"two"
|
|
]
|
|
sheerka = self.init_scenario(init)
|
|
capsys.readouterr()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
sheerka.evaluate_user_input("in_memory()")
|
|
captured = capsys.readouterr()
|
|
assert captured.out == """one: (1001)one
|
|
two: (1002)two
|
|
"""
|
|
|
|
def test_i_can_retrieve_history(self, capsys):
|
|
init = [
|
|
"test()",
|
|
]
|
|
sheerka = self.init_scenario(init)
|
|
capsys.readouterr()
|
|
|
|
sheerka.enable_process_return_values = True
|
|
res = sheerka.evaluate_user_input(f"history()")
|
|
|
|
assert len(res) == 1
|
|
assert res[0].status
|
|
|
|
captured = capsys.readouterr()
|
|
assert " : test()" in captured.out
|
|
assert " : history()" in captured.out
|