Resolved some remaining chicken and egg when parsing BNF nodes
This commit is contained in:
@@ -250,6 +250,40 @@ class TestSheerkaSetsManager(TestUsingMemoryBasedSheerka):
|
||||
assert sheerka.isa(bar, baz)
|
||||
assert sheerka.isa(foo, baz)
|
||||
|
||||
def test_concept_expression_recurse_id_is_updated(self):
|
||||
sheerka, context, one, number, twenties = self.init_concepts(
|
||||
"one",
|
||||
"number",
|
||||
Concept("twenties", definition="'twenty' number").def_var("number"),
|
||||
create_new=True
|
||||
)
|
||||
|
||||
assert twenties.bnf.elements[1].recurse_id is None
|
||||
|
||||
# update number
|
||||
sheerka.set_isa(context, sheerka.new("one"), number)
|
||||
|
||||
assert twenties.bnf.elements[1].recurse_id == "1002#number#1003"
|
||||
|
||||
def test_concepts_in_group_cache_is_updated(self):
|
||||
sheerka, context, one, two, number = self.init_concepts("one", "two", "number")
|
||||
|
||||
sheerka.set_isa(context, sheerka.new("one"), number)
|
||||
|
||||
elements = sheerka.get_set_elements(context, number)
|
||||
assert [c.id for c in elements] == [one.id]
|
||||
|
||||
concepts_in_cache = sheerka.cache_manager.get(SheerkaSetsManager.CONCEPTS_IN_GROUPS_ENTRY, number.id)
|
||||
assert [c.id for c in concepts_in_cache] == [one.id]
|
||||
|
||||
# add another element to number
|
||||
sheerka.set_isa(context, sheerka.new("two"), number)
|
||||
elements = sheerka.get_set_elements(context, number)
|
||||
assert {c.id for c in elements} == {one.id, two.id}
|
||||
|
||||
concepts_in_cache = sheerka.cache_manager.get(SheerkaSetsManager.CONCEPTS_IN_GROUPS_ENTRY, number.id)
|
||||
assert {c.id for c in concepts_in_cache} == {one.id, two.id}
|
||||
|
||||
|
||||
class TestSheerkaSetsManagerUsingFileBasedSheerka(TestUsingFileBasedSheerka):
|
||||
def test_i_can_add_concept_to_set_and_retrieve_it_in_another_session(self):
|
||||
@@ -280,7 +314,7 @@ class TestSheerkaSetsManagerUsingFileBasedSheerka(TestUsingFileBasedSheerka):
|
||||
foo4 = Concept("foo4")
|
||||
for c in [foo3, foo4]:
|
||||
sheerka.create_new_concept(context, c)
|
||||
|
||||
|
||||
sets_handler = sheerka.services[SheerkaSetsManager.NAME]
|
||||
res = sets_handler.add_concepts_to_set(context, (foo3, foo4), group)
|
||||
assert res.status
|
||||
|
||||
Reference in New Issue
Block a user