def testSaveSession_08(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] controller = SessionController(self.application) storage = SessionStorage(self.application.config) storage.save(controller.getCurrentSession(), "session1") storage.save(controller.getCurrentSession(), "session2") otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 2) self.assertEqual(len(sessions["session1"].pages), 1) self.assertEqual(sessions["session1"].pages[0], self._getPageLink(self.wikiroot["Страница 1"])) self.assertEqual(sessions["session1"].currentTab, 0) self.assertEqual(len(sessions["session2"].pages), 1) self.assertEqual(sessions["session2"].pages[0], self._getPageLink(self.wikiroot["Страница 1"])) self.assertEqual(sessions["session2"].currentTab, 0)
def testRemoveSession_02(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] controller = SessionController(self.application) storage = SessionStorage(self.application.config) storage.save(controller.getCurrentSession(), "session1") storage.save(controller.getCurrentSession(), "session2") otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 2) # Удалим несуществующую сессию. При этом ничего не должно происходить storage.remove("session1") otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(list(sessions.keys())[0], "session2") sessions = storage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(list(sessions.keys())[0], "session2")
def testSaveSession_06(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController tabsController = self.application.mainWindow.tabsController uid1 = self._getPageLink(self.wikiroot["Страница 1"]) uid2 = self._getPageLink(self.wikiroot["Страница 2"]) wiki = WikiDocument.load(self.wikiroot.path, True) self.application.wikiroot = wiki self.application.selectedPage = wiki["Страница 1"] tabsController.openInTab(wiki["Страница 2"], True) sessionName = "Имя сессии" controller = SessionController(self.application) session = controller.getCurrentSession() # Сохраним сессию дважды под одним и тем же именем SessionStorage(self.application.config).save(session, sessionName) SessionStorage(self.application.config).save(session, sessionName) otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(len(sessions[sessionName].pages), 2) self.assertEqual(sessions[sessionName].pages[0], uid1) self.assertEqual(sessions[sessionName].pages[1], uid2) self.assertEqual(sessions[sessionName].currentTab, 1) self.assertTrue(sessions[sessionName].readonly)
def testSaveSession_03(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController tabsController = self.application.mainWindow.tabsController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] tabsController.openInTab(self.wikiroot["Страница 2"], True) sessionName = "Имя сессии" controller = SessionController(self.application) SessionStorage(self.application.config).save( controller.getCurrentSession(), sessionName) otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(len(sessions[sessionName].pages), 2) self.assertEqual(sessions[sessionName].pages[0], self._getPageLink(self.wikiroot["Страница 1"])) self.assertEqual(sessions[sessionName].pages[1], self._getPageLink(self.wikiroot["Страница 2"])) self.assertEqual(sessions[sessionName].currentTab, 1)
def testSaveSession_03(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController tabsController = self.application.mainWindow.tabsController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] tabsController.openInTab(self.wikiroot["Страница 2"], True) sessionName = "Имя сессии" controller = SessionController(self.application) SessionStorage(self.application.config).save(controller.getCurrentSession(), sessionName) otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(len(sessions[sessionName].pages), 2) self.assertEqual(sessions[sessionName].pages[0], self._getPageLink(self.wikiroot["Страница 1"])) self.assertEqual(sessions[sessionName].pages[1], self._getPageLink(self.wikiroot["Страница 2"])) self.assertEqual(sessions[sessionName].currentTab, 1)
def testSaveSession_05 (self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController tabsController = Application.mainWindow.tabsController Application.wikiroot = self.wikiroot Application.selectedPage = self.wikiroot[u"Страница 1"] tabsController.openInTab (self.wikiroot[u"Страница 2"], True) sessionName = u"Имя сессии" controller = SessionController (Application) session = controller.getCurrentSession() # Сохраним сессию дважды под одним и тем же именем SessionStorage(Application.config).save (session, sessionName) SessionStorage(Application.config).save (session, sessionName) otherStorage = SessionStorage(Application.config) sessions = otherStorage.getSessions() self.assertEqual (len (sessions), 1) self.assertEqual (len (sessions[sessionName].pages), 2) self.assertEqual (sessions[sessionName].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions[sessionName].pages[1], self._getPageLink (self.wikiroot[u"Страница 2"])) self.assertEqual (sessions[sessionName].currentTab, 1) self.assertFalse (sessions[sessionName].readonly)
def testSaveSession_04 (self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController sessionName1 = u"Имя сессии 1" sessionName2 = u"Имя сессии 2" tabsController = Application.mainWindow.tabsController Application.wikiroot = self.wikiroot Application.selectedPage = self.wikiroot[u"Страница 1"] controller = SessionController (Application) # Сохраним сессию с одной страницей SessionStorage(Application.config).save (controller.getCurrentSession(), sessionName1) # Сохраним сессию с двумя страницами tabsController.openInTab (self.wikiroot[u"Страница 2"], True) SessionStorage(Application.config).save (controller.getCurrentSession(), sessionName2) otherStorage = SessionStorage(Application.config) sessions = otherStorage.getSessions() self.assertEqual (len (sessions), 2) self.assertEqual (len (sessions[sessionName1].pages), 1) self.assertEqual (sessions[sessionName1].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions[sessionName1].currentTab, 0) self.assertEqual (len (sessions[sessionName2].pages), 2) self.assertEqual (sessions[sessionName2].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions[sessionName2].pages[1], self._getPageLink (self.wikiroot[u"Страница 2"])) self.assertEqual (sessions[sessionName2].currentTab, 1)
def testRename_08(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] controller = SessionController(self.application) storage = SessionStorage(self.application.config) storage.save(controller.getCurrentSession(), "session1") storage.save(controller.getCurrentSession(), "session2") storage.rename("session1", "Абырвалг ") otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 2) self.assertEqual(sorted(sessions.keys())[0], "session2") self.assertEqual(sorted(sessions.keys())[1], "Абырвалг") sessions = storage.getSessions() self.assertEqual(len(sessions), 2) self.assertEqual(sorted(sessions.keys())[0], "session2") self.assertEqual(sorted(sessions.keys())[1], "Абырвалг")
def testSaveSession_09 (self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController Application.wikiroot = self.wikiroot Application.selectedPage = self.wikiroot[u"Страница 1"] controller = SessionController (Application) storage = SessionStorage(Application.config) storage.save (controller.getCurrentSession(), u"session1") tabsController = Application.mainWindow.tabsController tabsController.openInTab (self.wikiroot[u"Страница 2"], True) storage.save (controller.getCurrentSession(), u"session2") otherStorage = SessionStorage(Application.config) sessions = otherStorage.getSessions() self.assertEqual (len (sessions), 2) self.assertEqual (len (sessions["session1"].pages), 1) self.assertEqual (sessions["session1"].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions["session1"].currentTab, 0) self.assertEqual (len (sessions["session2"].pages), 2) self.assertEqual (sessions["session2"].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions["session2"].pages[1], self._getPageLink (self.wikiroot[u"Страница 2"])) self.assertEqual (sessions["session2"].currentTab, 1)
def testRename_01 (self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController Application.wikiroot = self.wikiroot Application.selectedPage = self.wikiroot[u"Страница 1"] controller = SessionController (Application) storage = SessionStorage(Application.config) storage.save (controller.getCurrentSession(), u"session1") storage.save (controller.getCurrentSession(), u"session2") self.assertRaises (KeyError, storage.rename, u"invalid", u"Абырвалг")
def testRename_07(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Страница 1"] controller = SessionController(self.application) storage = SessionStorage(self.application.config) storage.save(controller.getCurrentSession(), "session1") storage.save(controller.getCurrentSession(), "session2") self.assertRaises(ValueError, storage.rename, "session1", " ")
def testSessionSingleTab (self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController Application.wikiroot = self.wikiroot Application.selectedPage = self.wikiroot[u"Страница 1"] sessionName = u"Имя сессии" controller = SessionController(Application) storage = SessionStorage(Application.config) storage.save (controller.getCurrentSession(), sessionName) sessions = storage.getSessions() self.assertEqual (len (sessions), 1) self.assertEqual (len (sessions[sessionName].pages), 1) self.assertEqual (sessions[sessionName].pages[0], self._getPageLink (self.wikiroot[u"Страница 1"])) self.assertEqual (sessions[sessionName].currentTab, 0)
def testSaveSession_root(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController self.application.wikiroot = self.wikiroot self.application.selectedPage = None sessionName = "Имя сессии" controller = SessionController(self.application) SessionStorage(self.application.config).save( controller.getCurrentSession(), sessionName) otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(len(sessions[sessionName].pages), 1) self.assertEqual(sessions[sessionName].pages[0], None) self.assertEqual(sessions[sessionName].currentTab, 0)
def testSaveSession_07(self): from sessions.sessionstorage import SessionStorage from sessions.sessioncontroller import SessionController tabsController = self.application.mainWindow.tabsController # Создадим UID, а потом проверим, что они нормально прочитаются в # режиме только для чтения self._getPageLink(self.wikiroot["Страница 1"]) self._getPageLink(self.wikiroot["Страница 2"]) wiki = WikiDocument.load(self.wikiroot.path, True) self.application.wikiroot = wiki self.application.selectedPage = wiki["Страница 1"] tabsController.openInTab(wiki["Страница 2"], True) sessionName = "Имя сессии" controller = SessionController(self.application) session = controller.getCurrentSession() # Сохраним сессию дважды под одним и тем же именем storage = SessionStorage(self.application.config) storage.save(session, sessionName) storage.save(session, sessionName) otherStorage = SessionStorage(self.application.config) sessions = otherStorage.getSessions() self.assertEqual(len(sessions), 1) self.assertEqual(len(sessions[sessionName].pages), 2) self.assertEqual(sessions[sessionName].pages[0], self._getPageLink(wiki["Страница 1"])) self.assertEqual(sessions[sessionName].pages[1], self._getPageLink(wiki["Страница 2"])) self.assertEqual(sessions[sessionName].currentTab, 1) self.assertTrue(sessions[sessionName].readonly)
def testEmptySessions(self): from sessions.sessionstorage import SessionStorage storage = SessionStorage(self.application.config) self.assertEqual(storage.getSessions(), {})