First implementation of questions management
This commit is contained in:
@@ -2,7 +2,7 @@ import pytest
|
||||
from core.builtin_concepts import ReturnValueConcept, BuiltinConcepts
|
||||
from core.concept import Concept
|
||||
from core.sheerka.services.SheerkaSetsManager import SheerkaSetsManager
|
||||
from evaluators.EvalEvaluator import EvalEvaluator
|
||||
from evaluators.ReturnBodyEvaluator import ReturnBodyEvaluator
|
||||
|
||||
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
||||
|
||||
@@ -15,7 +15,7 @@ def retval(obj, who="who", status=True):
|
||||
class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
|
||||
def test_i_can_match_and_eval(self):
|
||||
context = self.get_context()
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_VALUE_REQUESTED)
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_BODY_REQUESTED)
|
||||
|
||||
to_eval1 = ReturnValueConcept("some_name", True, Concept(name="2", body="to eval").auto_init())
|
||||
to_eval2 = ReturnValueConcept("some_name", True, Concept(name="3", body="also to eval").auto_init())
|
||||
@@ -28,7 +28,7 @@ class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
|
||||
to_eval2,
|
||||
]
|
||||
|
||||
evaluator = EvalEvaluator()
|
||||
evaluator = ReturnBodyEvaluator()
|
||||
assert evaluator.matches(context, return_values)
|
||||
|
||||
evaluated = evaluator.eval(context, return_values)
|
||||
@@ -47,16 +47,16 @@ class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
|
||||
])
|
||||
def test_i_cannot_match_if_eval_request_is_not_present(self, return_value):
|
||||
context = self.get_context()
|
||||
assert not EvalEvaluator().matches(context, [return_value])
|
||||
assert not ReturnBodyEvaluator().matches(context, [return_value])
|
||||
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_VALUE_REQUESTED)
|
||||
assert EvalEvaluator().matches(context, [return_value])
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_BODY_REQUESTED)
|
||||
assert ReturnBodyEvaluator().matches(context, [return_value])
|
||||
|
||||
def test_i_can_match_depending_on_builtin_concept_processing(self):
|
||||
context = self.get_context()
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_VALUE_REQUESTED)
|
||||
context.global_hints.add(BuiltinConcepts.RETURN_BODY_REQUESTED)
|
||||
return_values = [ReturnValueConcept("some_name", True, Concept(name="2", body="to eval").auto_init())]
|
||||
evaluator = EvalEvaluator()
|
||||
evaluator = ReturnBodyEvaluator()
|
||||
|
||||
# i match when no BuiltinConcepts.PROCESSING is found
|
||||
assert evaluator.matches(context, return_values)
|
||||
@@ -80,7 +80,7 @@ class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
|
||||
ReturnValueConcept("some_name", False, Concept(name="1", body="not to eval")), # no evaluated body
|
||||
]
|
||||
|
||||
evaluated = EvalEvaluator().eval(context, return_values)
|
||||
evaluated = ReturnBodyEvaluator().eval(context, return_values)
|
||||
assert evaluated is None
|
||||
|
||||
def test_i_can_evaluate_sets(self):
|
||||
@@ -92,7 +92,7 @@ class TestEvalEvaluator(TestUsingMemoryBasedSheerka):
|
||||
sets_handler = sheerka.services[SheerkaSetsManager.NAME]
|
||||
sets_handler.add_concepts_to_set(context, [foo, bar, baz], number)
|
||||
|
||||
evaluated = EvalEvaluator().eval(context, [retval(number)])
|
||||
evaluated = ReturnBodyEvaluator().eval(context, [retval(number)])
|
||||
|
||||
assert len(evaluated) == 1
|
||||
assert evaluated[0].status
|
||||
|
||||
Reference in New Issue
Block a user