Implemented a first and basic version of a Rete rule engine
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
from core.builtin_concepts_ids import BuiltinConcepts
|
||||
from evaluators.PythonEvaluator import PythonEvalError
|
||||
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
||||
|
||||
|
||||
class TestSheerkaNonRegDisplay(TestUsingMemoryBasedSheerka):
|
||||
|
||||
def test_i_can_apply_simple_rule(self):
|
||||
init = [
|
||||
"def concept one as 1",
|
||||
"when __ret.status then test_error()",
|
||||
]
|
||||
|
||||
sheerka = self.init_scenario(init)
|
||||
sheerka.enable_process_rules = True
|
||||
res = sheerka.evaluate_user_input("one")
|
||||
|
||||
assert len(res) == 1
|
||||
ret = res[0]
|
||||
|
||||
assert not ret.status
|
||||
assert sheerka.isinstance(ret.body, BuiltinConcepts.ERROR)
|
||||
assert isinstance(ret.body.body, PythonEvalError)
|
||||
assert isinstance(ret.body.body.error, Exception)
|
||||
assert ret.body.body.error.args == ("I can raise an error",)
|
||||
Reference in New Issue
Block a user