dd3d8f4abe
Fixed #60 : Hash error when ReturnValue is a list of list Fixed #59 : Implement smart_get() Fixed #58 : SheerkaPromptCompleter: Cannot parse concept token Fixed #57 : SheerkaPrompt: Add concept autocompletion Fixed #56 : automatically backup command Fixed #54 : I can record execution status Fixed #53 : ConceptManager: modify_concept fails
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
from core.builtin_concepts import BuiltinConcepts
|
|
|
|
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
|
|
|
|
|
class TestSheerkaHasAManager(TestUsingMemoryBasedSheerka):
|
|
def test_i_can_set_hasa(self):
|
|
sheerka, context, king, kingdom = self.init_concepts("king", "kingdom")
|
|
|
|
res = sheerka.set_hasa(context, sheerka.new("king"), kingdom)
|
|
assert res.status
|
|
|
|
another_king = sheerka.get_by_key("king")
|
|
assert another_king.get_prop(BuiltinConcepts.HASA) == {kingdom}
|
|
|
|
# check that the definition of the concept has been updated
|
|
assert sheerka.hasa(sheerka.new("king"), kingdom)
|
|
|
|
def test_i_cannot_set_the_same_attribute_twice(self):
|
|
sheerka, context, king, kingdom = self.init_concepts("king", "kingdom")
|
|
|
|
sheerka.set_hasa(context, sheerka.new("king"), kingdom)
|
|
res = sheerka.set_hasa(context, sheerka.new("king"), kingdom)
|
|
|
|
assert not res.status
|
|
assert sheerka.isinstance(res.body, BuiltinConcepts.PROPERTY_ALREADY_DEFINED)
|
|
assert res.body.property_name == BuiltinConcepts.HASA
|
|
assert res.body.property_value == kingdom
|
|
assert res.body.concept == sheerka.new("king")
|