Files

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