Fixed unit test

This commit is contained in:
2020-01-31 20:13:17 +01:00
parent b9afcba61f
commit 78fc046f5a
9 changed files with 88 additions and 27 deletions
+37 -6
View File
@@ -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
+5
View File
@@ -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
+12 -6
View File
@@ -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,10 +247,11 @@ 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 len(ret) == 1 and ret[0].status and self.isinstance(ret[0].value, BuiltinConcepts.NEW_CONCEPT): if not self.during_restore:
with open(CONCEPTS_FILE, "a") as f: if len(ret) == 1 and ret[0].status and self.isinstance(ret[0].value, BuiltinConcepts.NEW_CONCEPT):
f.write(text + "\n") with open(CONCEPTS_FILE, "a") as f:
f.write(text + "\n")
return ret return ret
def execute(self, execution_context, return_values, execution_steps, logger=None): def execute(self, execution_context, return_values, execution_steps, logger=None):
@@ -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
+1 -1
View File
@@ -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)
+15
View File
@@ -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
+10
View File
@@ -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
+5 -11
View File
@@ -18,7 +18,7 @@ class TestSheerkaHistoryManager(TestUsingMemoryBasedSheerka):
sheerka.evaluate_user_input("def concept five as 5") sheerka.evaluate_user_input("def concept five as 5")
sheerka.evaluate_user_input("five") sheerka.evaluate_user_input("five")
h = list(sheerka.history(-1)) # all h = list(sheerka.history(-1)) # all
assert h == [ assert h == [
hist("five", True), hist("five", True),
hist("def concept five as 5", True), hist("def concept five as 5", True),
@@ -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),
] ]
+2 -2
View File
@@ -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)