Added first version of DebugManager. Implemented draft of the rule engine

This commit is contained in:
2020-11-20 13:41:45 +01:00
parent cd066881b4
commit 315f8ea09b
156 changed files with 8388 additions and 2852 deletions
+36 -15
View File
@@ -1,6 +1,7 @@
from core.concept import Concept, ConceptParts
from core.sheerka.services.SheerkaVariableManager import SheerkaVariableManager
from tests.TestUsingFileBasedSheerka import TestUsingFileBasedSheerka
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
@@ -9,8 +10,8 @@ class TestSheerkaVariable(TestUsingMemoryBasedSheerka):
sheerka = self.get_sheerka(cache_only=False)
context = self.get_context(sheerka)
sheerka.record(context, "TestSheerkaVariable", "my_variable", 1)
res = sheerka.load("TestSheerkaVariable", "my_variable")
sheerka.record_var(context, "TestSheerkaVariable", "my_variable", 1)
res = sheerka.load_var("TestSheerkaVariable", "my_variable")
assert res == 1
# I can persist in db
@@ -30,8 +31,8 @@ class TestSheerkaVariable(TestUsingMemoryBasedSheerka):
concept = Concept("foo").set_value("a", "alpha").set_value(ConceptParts.BODY, 3.14)
sheerka.record(context, "TestSheerkaVariable", "my_variable", concept)
res = sheerka.load("TestSheerkaVariable", "my_variable")
sheerka.record_var(context, "TestSheerkaVariable", "my_variable", concept)
res = sheerka.load_var("TestSheerkaVariable", "my_variable")
assert res == concept
assert res.body == concept.body
@@ -43,19 +44,19 @@ class TestSheerkaVariable(TestUsingMemoryBasedSheerka):
concept = Concept("foo")
sheerka.record(context, "TestSheerkaVariable", "my_variable", concept)
assert sheerka.load("TestSheerkaVariable", "my_variable") is not None
sheerka.record_var(context, "TestSheerkaVariable", "my_variable", concept)
assert sheerka.load_var("TestSheerkaVariable", "my_variable") is not None
sheerka.delete(context, "TestSheerkaVariable", "my_variable")
assert sheerka.load("TestSheerkaVariable", "my_variable") is None
sheerka.delete_var(context, "TestSheerkaVariable", "my_variable")
assert sheerka.load_var("TestSheerkaVariable", "my_variable") is None
def test_i_can_set_and_get_a_value(self):
sheerka = self.get_sheerka(cache_only=False)
context = self.get_context(sheerka)
context.event.user_id = "Test_user"
sheerka.set(context, "my_variable", "my value")
res = sheerka.get(context, "my_variable")
sheerka.set_var(context, "my_variable", "my value")
res = sheerka.get_var(context, "my_variable")
assert res == "my value"
# I can persist in db
@@ -69,13 +70,33 @@ class TestSheerkaVariable(TestUsingMemoryBasedSheerka):
assert loaded.who == "Test_user"
assert loaded.parents is None
class TestSheerkaVariableUsingFileBasedSdp(TestUsingFileBasedSheerka):
def test_i_can_bound_variables_to_sheerka(self):
sheerka, context = self.init_concepts()
old_value = sheerka.enable_process_return_values
new_value = not old_value
sheerka.record_var(context, "TestSheerkaVariable", "sheerka.enable_process_return_values", new_value)
sheerka.cache_manager.commit(context)
assert sheerka.enable_process_return_values == new_value
# the modification is persisted upon new Sheerka creation
sheerka = self.get_sheerka()
assert sheerka.enable_process_return_values == new_value
# reset old value
sheerka.enable_process_return_values = old_value
# def test_i_can_get_the_parent_when_modified(self):
# sheerka = self.get_sheerka()
# context = self.get_context(sheerka)
#
# sheerka.record(context, "TestSheerkaVariable", "my_variable", 1)
# sheerka.record(context, "TestSheerkaVariable", "my_variable", 2)
# res = sheerka.load("TestSheerkaVariable", "my_variable")
# sheerka.record_var(context, "TestSheerkaVariable", "my_variable", 1)
# sheerka.record_var(context, "TestSheerkaVariable", "my_variable", 2)
# res = sheerka.load_var("TestSheerkaVariable", "my_variable")
# assert res == 2
#
# loaded = sheerka.sdp.get(SheerkaVariableManager.VARIABLES_ENTRY, "TestSheerkaVariable.my_variable")
@@ -96,8 +117,8 @@ class TestSheerkaVariable(TestUsingMemoryBasedSheerka):
# sheerka = self.get_sheerka(singleton=True)
# context = self.get_context(sheerka)
#
# sheerka.record(context, "TestSheerkaVariable", "my_variable", 1)
# sheerka.record(context, "TestSheerkaVariable", "my_variable", 1)
# sheerka.record_var(context, "TestSheerkaVariable", "my_variable", 1)
# sheerka.record_var(context, "TestSheerkaVariable", "my_variable", 1)
#
# loaded = sheerka.sdp.get(SheerkaVariableManager.VARIABLES_ENTRY, "TestSheerkaVariable.my_variable")
# assert loaded.event_id == context.event.get_digest()