Added bnf when adding a new concept + Started logging filtering

This commit is contained in:
2019-12-13 20:26:11 +01:00
parent 75c8793d53
commit c668cc46d2
29 changed files with 1487 additions and 190 deletions
+25 -15
View File
@@ -5,6 +5,7 @@ from core.concept import Concept
from core.sheerka import Sheerka, ExecutionContext
from evaluators.ConceptEvaluator import ConceptEvaluator
from parsers.BaseParser import BaseParser
from parsers.ExactConceptParser import ExactConceptParser
def get_context():
@@ -13,12 +14,21 @@ def get_context():
return ExecutionContext("test", "xxx", sheerka)
def get_return_value(concept, source=None):
return ReturnValueConcept(
"some_name",
True,
ParserResultConcept(parser=ExactConceptParser(),
source=source or concept.name,
value=concept,
try_parsed=concept))
@pytest.mark.parametrize("ret_val, expected", [
(ReturnValueConcept(BaseParser.PREFIX + "some_name", True, Concept()), True),
(ReturnValueConcept(BaseParser.PREFIX + "some_name", False, Concept()), False),
(ReturnValueConcept("Not a parser", True, Concept()), False),
(ReturnValueConcept(BaseParser.PREFIX + "some_name", True, "not a concept"), False),
(ReturnValueConcept(BaseParser.PREFIX + "some_name", True, ParserResultConcept()), False),
(ReturnValueConcept("some_name", True, ParserResultConcept(value=Concept())), True),
(ReturnValueConcept("some_name", False, ParserResultConcept(value=Concept())), False),
(ReturnValueConcept("some_name", True, ParserResultConcept(value="Not a concept")), False),
(ReturnValueConcept("some_name", True, Concept()), False),
])
def test_i_can_match(ret_val, expected):
context = get_context()
@@ -30,7 +40,7 @@ def test_concept_is_returned_when_no_body():
concept = Concept(name="one").init_key()
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept)
item = get_return_value(concept)
result = evaluator.eval(context, item)
assert result.who == evaluator.name
@@ -44,7 +54,7 @@ def test_body_is_evaluated_when_python_body():
concept = Concept(name="one", body="1").init_key()
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept)
item = get_return_value(concept)
result = evaluator.eval(context, item)
assert result.who == evaluator.name
@@ -60,7 +70,7 @@ def test_body_is_evaluated_when_concept_body():
concept_un = Concept(name="un", body="one").init_key()
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_un)
item = get_return_value(concept_un)
result = evaluator.eval(context, item)
assert result.who == evaluator.name
@@ -80,7 +90,7 @@ def test_body_is_evaluated_when_concept_body_with_a_body():
concept_un = Concept(name="un", body="one").init_key()
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_un)
item = get_return_value(concept_un)
result = evaluator.eval(context, item)
assert result.who == evaluator.name
@@ -97,7 +107,7 @@ def test_i_can_evaluate_longer_chains():
concept_d = context.sheerka.add_in_cache(Concept(name="d", body="c").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_d)
item = get_return_value(concept_d)
result = evaluator.eval(context, item)
assert result.status
@@ -112,7 +122,7 @@ def test_i_can_evaluate_longer_chains_2():
concept_d = context.sheerka.add_in_cache(Concept(name="d", body="c").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_d)
item = get_return_value(concept_d)
result = evaluator.eval(context, item)
assert result.status
@@ -133,7 +143,7 @@ def test_i_can_recognize_concept_properties():
.set_prop("b", "two").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_plus)
item = get_return_value(concept_plus)
result = evaluator.eval(context, item)
assert result.status
@@ -156,7 +166,7 @@ def test_i_can_recognize_concept_properties_with_body():
.set_prop("b", "two").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_plus)
item = get_return_value(concept_plus)
result = evaluator.eval(context, item)
assert result.status
@@ -174,7 +184,7 @@ def test_i_can_recognize_concept_properties_with_body_when_concept_has_a_body():
.set_prop("b", "two").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_plus)
item = get_return_value(concept_plus)
result = evaluator.eval(context, item)
assert result.status
@@ -189,7 +199,7 @@ def test_i_cannot_recognize_a_concept_if_one_of_the_prop_is_unknown():
.set_prop("b", "two").init_key())
evaluator = ConceptEvaluator()
item = ReturnValueConcept(BaseParser.PREFIX + "some_name", True, concept_plus)
item = get_return_value(concept_plus)
result = evaluator.eval(context, item)
assert not result.status