from core.sheerka.services.SheerkaHistoryManager import hist, SheerkaHistoryManager from tests.TestUsingFileBasedSheerka import TestUsingFileBasedSheerka class TestSheerkaHistoryManager(TestUsingFileBasedSheerka): def test_i_can_retrieve_history(self): sheerka = self.get_sheerka() service = sheerka.services[SheerkaHistoryManager.NAME] sheerka.save_execution_context = True sheerka.evaluate_user_input("def concept one as 1") sheerka.evaluate_user_input("one") sheerka.evaluate_user_input("xxx") sheerka.evaluate_user_input("def concept two as 2") sheerka.evaluate_user_input("two") sheerka.evaluate_user_input("def concept three as 3") sheerka.evaluate_user_input("three") sheerka.evaluate_user_input("def concept four as 4") sheerka.evaluate_user_input("four") sheerka.evaluate_user_input("def concept five as 5") sheerka.evaluate_user_input("five") h = list(service.history(-1)) # all transformed_h = [hist(item.event.message, item.status) for item in h] assert transformed_h == [ hist("five", True), hist("def concept five as 5", True), hist("four", True), hist("def concept four as 4", True), hist("three", True), hist("def concept three as 3", True), hist("two", True), hist("def concept two as 2", True), hist("xxx", False), hist("one", True), hist("def concept one as 1", True), hist("Initializing Sheerka.", None) ] h = list(service.history(2)) transformed_h = [hist(item.event.message, item.status) for item in h] assert transformed_h == [ hist("five", True), hist("def concept five as 5", True) ] h = list(service.history(2, 2)) transformed_h = [hist(item.event.message, item.status) for item in h] assert transformed_h == [ hist("four", True), hist("def concept four as 4", True), ]