First implementation of questions management

This commit is contained in:
2020-08-14 08:16:33 +02:00
parent e84b394da2
commit 351c16f946
47 changed files with 1582 additions and 400 deletions
+10 -10
View File
@@ -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