Fixed unit test
This commit is contained in:
+37
-6
@@ -1,10 +1,41 @@
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept one as 1
|
||||
|
||||
def concept two as 2
|
||||
|
||||
def concept three as 3
|
||||
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
def concept six as 6
|
||||
def concept seven as 7
|
||||
def concept eight as 8
|
||||
def concept nine as 9
|
||||
def concept ten as 10
|
||||
def concept eleven as 11
|
||||
def concept twelve as 12
|
||||
def concept thirteen as 13
|
||||
def concept fourteen as 14
|
||||
def concept fifteen as 15
|
||||
def concept sixteen as 16
|
||||
def concept seventeen as 17
|
||||
def concept eighteen as 18
|
||||
def concept nineteen as 19
|
||||
def concept twenty as 20
|
||||
def concept numbers
|
||||
def one isa number
|
||||
def two isa number
|
||||
def three isa number
|
||||
def four isa number
|
||||
def five isa number
|
||||
def six isa number
|
||||
def seven isa number
|
||||
def eight isa number
|
||||
def nine isa number
|
||||
def ten isa number
|
||||
def eleven isa number
|
||||
def twelve isa number
|
||||
def thirteen isa number
|
||||
def fourteen isa number
|
||||
def fifteen isa number
|
||||
def sixteen isa number
|
||||
def seventeen isa number
|
||||
def eighteen isa number
|
||||
def nineteen isa number
|
||||
def twenty isa number
|
||||
@@ -42,6 +42,11 @@ class SheerkaDump:
|
||||
self.sheerka.log.info(f"body : {c.metadata.body}")
|
||||
self.sheerka.log.info(f"value : {c.body}")
|
||||
self.sheerka.log.info(f"digest : {c.get_digest()}")
|
||||
|
||||
if self.sheerka.isaset(c):
|
||||
items = self.sheerka.get_set_elements(c)
|
||||
self.sheerka.log.info(f"elements : {items}")
|
||||
|
||||
first = False
|
||||
|
||||
def dump_history(self, page=20, start=0):
|
||||
|
||||
@@ -74,7 +74,7 @@ class SheerkaSetsManager:
|
||||
|
||||
return self.sheerka.sdp.exists(GROUP_PREFIX + b.id, a.id)
|
||||
|
||||
def isagroup(self, concept):
|
||||
def isaset(self, concept):
|
||||
"""True if exists All_<concept_id> in sdp"""
|
||||
if not concept.id:
|
||||
return None
|
||||
|
||||
@@ -24,6 +24,7 @@ import logging
|
||||
CONCEPT_LEXER_PARSER_CLASS = "parsers.ConceptLexerParser.ConceptLexerParser"
|
||||
CONCEPTS_FILE = "_concepts.txt"
|
||||
|
||||
|
||||
class Sheerka(Concept):
|
||||
"""
|
||||
Main controller for the project
|
||||
@@ -84,6 +85,8 @@ class Sheerka(Concept):
|
||||
self.evaluate_concept_handler = SheerkaEvaluateConcept(self)
|
||||
self.history_handler = SheerkaHistoryManager(self)
|
||||
|
||||
self.during_restore = False
|
||||
|
||||
def initialize(self, root_folder: str = None):
|
||||
"""
|
||||
Starting Sheerka
|
||||
@@ -244,7 +247,8 @@ class Sheerka(Concept):
|
||||
if not self.skip_builtins_in_db:
|
||||
self.sdp.save_result(self, execution_context)
|
||||
|
||||
#hack to save valid concept definition
|
||||
# hack to save valid concept definition
|
||||
if not self.during_restore:
|
||||
if len(ret) == 1 and ret[0].status and self.isinstance(ret[0].value, BuiltinConcepts.NEW_CONCEPT):
|
||||
with open(CONCEPTS_FILE, "a") as f:
|
||||
f.write(text + "\n")
|
||||
@@ -534,8 +538,8 @@ class Sheerka(Concept):
|
||||
def isa(self, a, b):
|
||||
return self.sets_handler.isa(a, b)
|
||||
|
||||
def isagroup(self, concept):
|
||||
return self.sets_handler.isagroup(concept)
|
||||
def isaset(self, concept):
|
||||
return self.sets_handler.isaset(concept)
|
||||
|
||||
def get_evaluator_name(self, name):
|
||||
if self.evaluators_prefix is None:
|
||||
@@ -572,9 +576,11 @@ class Sheerka(Concept):
|
||||
:return:
|
||||
"""
|
||||
try:
|
||||
self.during_restore = True
|
||||
with open(CONCEPTS_FILE, "r") as f:
|
||||
for line in f.readlines():
|
||||
self.evaluate_user_input(line)
|
||||
self.during_restore = False
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -694,7 +694,7 @@ class ConceptLexerParser(BaseParser):
|
||||
# A copy must be created
|
||||
def inner_get_model(expression):
|
||||
if isinstance(expression, Concept):
|
||||
if self.sheerka.isagroup(expression):
|
||||
if self.sheerka.isaset(expression):
|
||||
ret = ConceptGroupExpression(expression, rule_name=expression.name)
|
||||
else:
|
||||
ret = ConceptExpression(expression, rule_name=expression.name)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
@@ -0,0 +1,10 @@
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
def concept one as 1
|
||||
def concept two as 2
|
||||
def concept three as 3
|
||||
def concept four as 4
|
||||
def concept five as 5
|
||||
@@ -35,18 +35,12 @@ class TestSheerkaHistoryManager(TestUsingMemoryBasedSheerka):
|
||||
|
||||
h = list(sheerka.history(2))
|
||||
assert h == [
|
||||
hist("two", True),
|
||||
hist("def concept two as 2", True)
|
||||
hist("five", True),
|
||||
hist("def concept five as 5", True)
|
||||
]
|
||||
|
||||
h = list(sheerka.history(2, 2))
|
||||
assert h == [
|
||||
hist("xxx", False),
|
||||
hist("one", True),
|
||||
]
|
||||
|
||||
h = list(sheerka.history(-1))
|
||||
assert h == [
|
||||
hist("xxx", False),
|
||||
hist("one", True),
|
||||
hist("four", True),
|
||||
hist("def concept four as 4", True),
|
||||
]
|
||||
|
||||
@@ -112,7 +112,7 @@ class TestSheerkaSetsManager(TestUsingFileBasedSheerka):
|
||||
|
||||
group = Concept("group").init_key()
|
||||
group.metadata.id = "1001"
|
||||
assert not sheerka.isagroup(group)
|
||||
assert not sheerka.isaset(group)
|
||||
|
||||
foo = Concept("foo").init_key()
|
||||
foo.metadata.id = "1002"
|
||||
@@ -120,5 +120,5 @@ class TestSheerkaSetsManager(TestUsingFileBasedSheerka):
|
||||
|
||||
context = self.get_context(sheerka)
|
||||
sheerka.add_concept_to_set(context, foo, group)
|
||||
assert sheerka.isagroup(group)
|
||||
assert sheerka.isaset(group)
|
||||
assert sheerka.isa(foo, group)
|
||||
|
||||
Reference in New Issue
Block a user