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