from core.builtin_concepts import BuiltinConcepts from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka class TestSheerkaAdmin(TestUsingMemoryBasedSheerka): def test_i_can_get_last_ret(self): pass # def test_i_can_get_last_error_ret(self): # sheerka, context = self.init_concepts() # # # nothing in history # last_error_ret = sheerka.last_error_ret(context) # assert sheerka.isinstance(last_error_ret, BuiltinConcepts.RETURN_VALUE) # assert not last_error_ret.status # assert sheerka.isinstance(last_error_ret.body, BuiltinConcepts.NOT_FOUND) # # # only success in history # r_success = sheerka.ret("Test", True, "success") # sheerka.last_return_values.append([r_success]) # last_error_ret = sheerka.last_error_ret(context) # assert sheerka.isinstance(last_error_ret, BuiltinConcepts.RETURN_VALUE) # assert not last_error_ret.status # assert sheerka.isinstance(last_error_ret.body, BuiltinConcepts.NOT_FOUND) # # # at least on error # r_failure = sheerka.ret("Test", False, "failure") # sheerka.last_return_values.append([r_failure]) # assert sheerka.last_error_ret(context) == r_failure # # # add another success and make sure we get the same error # sheerka.last_return_values.append([r_success]) # assert sheerka.last_error_ret(context) == r_failure # # # and I only get the last failure # r_failure2 = sheerka.ret("Test", False, "another failure") # sheerka.last_return_values.append([r_failure2]) # assert sheerka.last_error_ret(context) == r_failure2 # # # but I still can get the previous error # assert sheerka.last_error_ret(context, -2) == r_failure # # def test_i_can_get_last_error_ret_when_only_one_ret_has_failed(self): # sheerka, context = self.init_concepts() # # r_success = sheerka.ret("Test", True, "success") # r_failure = sheerka.ret("Test", False, "False1") # # sheerka.last_return_values.append([r_success, r_failure]) # assert sheerka.last_error_ret(context) == r_failure # # def test_i_cannot_get_last_error_ret_when_too_many_errors(self): # sheerka, context = self.init_concepts() # # r1 = sheerka.ret("Test", True, "success") # r2 = sheerka.ret("Test", False, "False1") # r3 = sheerka.ret("Test", False, "False2") # # sheerka.last_return_values.append([r1, r2, r3]) # last_error_ret = sheerka.last_error_ret(context) # assert sheerka.isinstance(last_error_ret, BuiltinConcepts.RETURN_VALUE) # assert not last_error_ret.status # assert sheerka.isinstance(last_error_ret.body, BuiltinConcepts.TOO_MANY_ERRORS) # assert last_error_ret.body.body == [r2, r3]