Added bnf when adding a new concept + Started logging filtering
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user