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 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
+5
View File
@@ -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
+9 -3
View File
@@ -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
+1 -1
View File
@@ -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)
+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
+4 -10
View File
@@ -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),
]
+2 -2
View File
@@ -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)