81 lines
3.1 KiB
Python
81 lines
3.1 KiB
Python
from base import BaseTest
|
|
from conftest import NewOntology
|
|
from core.BuiltinConcepts import BuiltinConcepts
|
|
|
|
|
|
def get_ret_val(res):
|
|
assert len(res) == 1
|
|
return res[0]
|
|
|
|
|
|
class TestNonReg1(BaseTest):
|
|
|
|
def test_i_can_evaluate_python(self, sheerka, user):
|
|
res = sheerka.evaluate_user_input("1 + 1", user)
|
|
assert len(res) == 1
|
|
ret_val = res[0]
|
|
assert ret_val.status is True
|
|
assert ret_val.value == 2
|
|
|
|
def test_i_cannot_evaluate_variable_that_is_not_defined(self, sheerka, user):
|
|
res = sheerka.evaluate_user_input("a", user)
|
|
|
|
assert len(res) == 2
|
|
assert all([not ret_val.status for ret_val in res])
|
|
|
|
def test_i_can_remember_variables(self, sheerka, user):
|
|
sheerka.evaluate_user_input("a = 10", user)
|
|
|
|
res = sheerka.evaluate_user_input("a", user)
|
|
ret_val = get_ret_val(res)
|
|
|
|
assert ret_val.value == 10
|
|
|
|
def test_i_can_define_a_new_concept(self, context, sheerka, user):
|
|
with NewOntology(context, "test_i_can_define_a_new_concept"):
|
|
res = sheerka.evaluate_user_input("def concept one as 1", user)
|
|
|
|
ret_val = get_ret_val(res)
|
|
assert ret_val.status
|
|
assert sheerka.isinstance(ret_val.value, BuiltinConcepts.NEW_CONCEPT)
|
|
|
|
def test_i_can_define_a_new_concept_and_use_it(self, context, sheerka, user):
|
|
with NewOntology(context, "test_i_can_define_a_new_concept_and_use_it"):
|
|
sheerka.evaluate_user_input("def concept one as 1", user)
|
|
|
|
res = sheerka.evaluate_user_input("one", user)
|
|
ret_val = get_ret_val(res)
|
|
assert ret_val.status
|
|
assert sheerka.isinstance(ret_val.value, "one")
|
|
assert not ret_val.value.get_runtime_info().is_evaluated
|
|
|
|
def test_i_can_get_i_concept_using_c_name_form(self, context, sheerka, user):
|
|
with NewOntology(context):
|
|
sheerka.evaluate_user_input("def concept one as 1", user)
|
|
|
|
res = sheerka.evaluate_user_input("c:one:", user)
|
|
ret_val = get_ret_val(res)
|
|
assert ret_val.status
|
|
assert sheerka.isinstance(ret_val.value, "one")
|
|
assert not ret_val.value.get_runtime_info().is_evaluated
|
|
|
|
def test_i_can_get_i_concept_using_c_id_form(self, context, sheerka, user):
|
|
with NewOntology(context):
|
|
sheerka.evaluate_user_input("def concept one as 1", user)
|
|
|
|
res = sheerka.evaluate_user_input("c:#1001:", user)
|
|
ret_val = get_ret_val(res)
|
|
assert ret_val.status
|
|
assert sheerka.isinstance(ret_val.value, "one")
|
|
assert not ret_val.value.get_runtime_info().is_evaluated
|
|
|
|
def test_i_can_recognize_concepts_with_long_name(self, context, sheerka, user):
|
|
with NewOntology(context):
|
|
sheerka.evaluate_user_input("def concept i am a concept", user)
|
|
|
|
res = sheerka.evaluate_user_input("i am a concept", user)
|
|
ret_val = get_ret_val(res)
|
|
assert ret_val.status
|
|
assert sheerka.isinstance(ret_val.value, "i am a concept")
|
|
assert not ret_val.value.get_runtime_info().is_evaluated
|