Enhanced complex concepts handling
This commit is contained in:
@@ -108,26 +108,34 @@ def test_that_the_source_is_correctly_set():
|
||||
assert created_concept.metadata.definition == "hello a"
|
||||
|
||||
|
||||
def test_that_the_ast_is_correctly_initialized():
|
||||
context = get_context()
|
||||
def_concept_return_value = get_concept(
|
||||
name="hello a",
|
||||
definition=get_concept_definition("hello a", Sequence(StrMatch("hello"), StrMatch("a"))),
|
||||
where="isinstance(a, str )",
|
||||
pre="a is not None",
|
||||
body="print('hello' + a)")
|
||||
|
||||
evaluated = AddConceptEvaluator().eval(context, def_concept_return_value)
|
||||
|
||||
assert evaluated.status
|
||||
assert context.sheerka.isinstance(evaluated.body, BuiltinConcepts.NEW_CONCEPT)
|
||||
|
||||
created_concept = evaluated.body.body
|
||||
|
||||
assert ConceptParts.WHERE in created_concept.cached_asts
|
||||
assert ConceptParts.PRE in created_concept.cached_asts
|
||||
assert ConceptParts.BODY in created_concept.cached_asts
|
||||
assert ConceptParts.POST not in created_concept.cached_asts
|
||||
# def test_that_the_ast_is_correctly_initialized():
|
||||
# """
|
||||
# When I parse the definition of a concept, I evaluate the metadata (like the body)
|
||||
# I wanted to keep in cache these evaluation for further utilisation but I have
|
||||
# a serialization issue.
|
||||
# So I had to comment concept.add_codes(def_concept_node.get_asts()) around line 85
|
||||
# So this test is now irrelevant
|
||||
# :return:
|
||||
# """
|
||||
# context = get_context()
|
||||
# def_concept_return_value = get_concept(
|
||||
# name="hello a",
|
||||
# definition=get_concept_definition("hello a", Sequence(StrMatch("hello"), StrMatch("a"))),
|
||||
# where="isinstance(a, str )",
|
||||
# pre="a is not None",
|
||||
# body="print('hello' + a)")
|
||||
#
|
||||
# evaluated = AddConceptEvaluator().eval(context, def_concept_return_value)
|
||||
#
|
||||
# assert evaluated.status
|
||||
# assert context.sheerka.isinstance(evaluated.body, BuiltinConcepts.NEW_CONCEPT)
|
||||
#
|
||||
# created_concept = evaluated.body.body
|
||||
#
|
||||
# assert ConceptParts.WHERE in created_concept.cached_asts
|
||||
# assert ConceptParts.PRE in created_concept.cached_asts
|
||||
# assert ConceptParts.BODY in created_concept.cached_asts
|
||||
# assert ConceptParts.POST not in created_concept.cached_asts
|
||||
|
||||
|
||||
def test_that_the_new_concept_is_correctly_saved():
|
||||
|
||||
Reference in New Issue
Block a user