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