Fixed #32 : concept groups are not correctly updated
Fixed #35 : Refactor test helper class (CNC, CC, CIO) Fixed #36 : Concept values are not used when declared with variable expression Fixed #37 : Objects in memory lose their values are restart Fixed #38 : func(a=b, c) (which is not allowed) raise an exception
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from core.builtin_concepts import BuiltinConcepts
|
||||
from core.builtin_helpers import ensure_evaluated
|
||||
from core.concept import Concept
|
||||
from core.global_symbols import NotFound
|
||||
from core.sheerka.ExecutionContext import ExecutionContext
|
||||
@@ -6,6 +7,7 @@ from core.sheerka.services.SheerkaMemory import SheerkaMemory, MemoryObject
|
||||
|
||||
from tests.TestUsingFileBasedSheerka import TestUsingFileBasedSheerka
|
||||
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
||||
from tests.parsers.parsers_utils import CV, compare_with_test_object, CB
|
||||
|
||||
|
||||
class TestSheerkaMemory(TestUsingMemoryBasedSheerka):
|
||||
@@ -31,7 +33,7 @@ class TestSheerkaMemory(TestUsingMemoryBasedSheerka):
|
||||
assert id(sheerka.get_from_short_term_memory(context, "a")) == id(foo)
|
||||
assert sheerka.get_from_short_term_memory(None, "a") is NotFound
|
||||
|
||||
def test_i_can_add_many(self):
|
||||
def test_i_can_add_many_to_short_term_memory(self):
|
||||
sheerka, context = self.init_test().unpack()
|
||||
bag = {"a": "foo", "b": "bar", }
|
||||
context_id = ExecutionContext.ids[context.event.get_digest()]
|
||||
@@ -191,6 +193,27 @@ class TestSheerkaMemory(TestUsingMemoryBasedSheerka):
|
||||
assert from_memory[-1].obj == from_memory_again[-1].obj
|
||||
assert from_memory[-1].event_id != from_memory_again[-1].event_id
|
||||
|
||||
def test_object_values_are_recorded(self):
|
||||
sheerka, context, foo, prop, value, inner_value = self.init_test(cache_only=False).with_concepts(
|
||||
Concept("foo").def_var("x"),
|
||||
Concept("prop"),
|
||||
Concept("value x").def_var("x"),
|
||||
Concept("one", body="1")
|
||||
).unpack()
|
||||
|
||||
instantiated_foo = sheerka.new(foo, x="value1")
|
||||
instantiated_one = ensure_evaluated(context, sheerka.new(inner_value))
|
||||
instantiated_value = sheerka.new(value, x=instantiated_one)
|
||||
sheerka.set_attr(instantiated_foo, prop, instantiated_value)
|
||||
|
||||
sheerka.add_to_memory(context, "foo", instantiated_foo)
|
||||
sheerka.om.commit(context)
|
||||
|
||||
from_db = sheerka.om.current_sdp().get(SheerkaMemory.OBJECTS_ENTRY, "foo")
|
||||
assert isinstance(from_db, MemoryObject)
|
||||
assert sheerka.isinstance(from_db.obj, foo)
|
||||
compare_with_test_object(sheerka.get_attr(from_db.obj, prop), CV(value, x=CB(inner_value, 1)))
|
||||
|
||||
|
||||
class TestSheerkaMemoryUsingFileBase(TestUsingFileBasedSheerka):
|
||||
def test_i_can_record_memory_objects(self):
|
||||
|
||||
Reference in New Issue
Block a user