def testSaveLoad_01(self): depot = PageUidDepot() uid = depot.createUid(self.wikiroot["Страница 1"]) depot_new = PageUidDepot(self.wikiroot) self.assertEqual(depot_new[uid].title, "Страница 1")
def testSaveLoad_02 (self): depot = PageUidDepot() uid = depot.createUid (self.wikiroot[u"Страница 2/Страница 3/Страница 4"]) depot_new = PageUidDepot(self.wikiroot) self.assertEqual (depot_new[uid].title, u"Страница 4")
def testRemovePage(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] uid = depot.createUid(page) page.remove() self.assertEqual(depot[uid], None)
def testApplication_01(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] uid = depot.createUid(page) Application.wikiroot = self.wikiroot self.assertEqual(Application.pageUidDepot[uid].title, "Страница 3")
def testReadOnly_02(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] depot.createUid(page) page.readonly = True depot.createUid(page)
def testChangeUid_09(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] new_uid = "АБЫРВАЛГ" depot.changeUid(page, new_uid) self.assertEqual(depot["абырвалг"].title, "Страница 3")
def testChangeUid_05(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] new_uid = "Абырвалг" depot.changeUid(page, new_uid) page.remove() self.assertEqual(depot[new_uid], None)
def testSaveLoad_03(self): depot = PageUidDepot() uid = depot.createUid(self.wikiroot[u"Страница 1"]) depot_new = PageUidDepot(self.wikiroot) self.assertEqual(depot_new[uid].title, u"Страница 1") removeDir(self.path)
def testChangeUid_02(self): depot = PageUidDepot() page = self.wikiroot[u"Страница 2/Страница 3"] new_uid = u"Абырвалг" depot.changeUid(page, new_uid) depot.changeUid(page, new_uid) self.assertEqual(depot[new_uid].title, u"Страница 3")
def testChangeUid_04 (self): depot = PageUidDepot() page = self.wikiroot[u"Страница 2/Страница 3"] new_uid = u"Абырвалг" depot.changeUid (page, new_uid) self.assertRaises (ValueError, depot.changeUid, self.wikiroot[u"Страница 1"], u"")
def testChangeUid_08(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] new_uid = "Абырвалг" depot.changeUid(page, new_uid) self.assertRaises(KeyError, depot.changeUid, self.wikiroot["Страница 1"], "абырвалг")
def testRenamePage(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] uid = depot.createUid(page) page.title = "Новый заголовок" self.assertEqual(depot[uid].title, "Новый заголовок") depot_new = PageUidDepot(self.wikiroot) self.assertEqual(depot_new[uid].title, "Новый заголовок")
def testChangeUid_01(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] new_uid = "Абырвалг" depot.changeUid(page, new_uid) self.assertEqual(depot[new_uid].title, "Страница 3") depot_new = PageUidDepot(self.wikiroot) self.assertEqual(depot_new[new_uid].title, "Страница 3")
def testMovePage(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] uid = depot.createUid(page) page.moveTo(self.wikiroot) self.assertEqual(depot[uid].title, "Страница 3") depot_new = PageUidDepot(self.wikiroot) self.assertEqual(depot_new[uid].title, "Страница 3") self.assertEqual(depot_new[uid].parent, self.wikiroot)
def testChangeUid_10(self): depot = PageUidDepot() new_uid = "Абырвалг" depot.changeUid(self.wikiroot["Страница 2/Страница 3"], new_uid) depot2 = PageUidDepot() depot2.changeUid(self.wikiroot["Страница 2"], new_uid) depot3 = PageUidDepot(self.wikiroot) self.assertEqual(depot3[new_uid].title, "Страница 3")
def testChangeUid_07(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] # Запрещено использовать "/" в идентификаторах new_uid = "Абырвалг/фвыафыва" self.assertRaises(ValueError, depot.changeUid, page, new_uid)
def wikiroot(self, value): """ Set wiki as current """ if self.__wikiroot is not None: wikiPath = self.__wikiroot.path preWikiCloseParams = PreWikiCloseParams(self.__wikiroot) self.onPreWikiClose(self.selectedPage, preWikiCloseParams) if preWikiCloseParams.abortClose: logger.debug('Wiki closing aborted: {}'.format(wikiPath)) return self.__unbindWikiEvents(self.__wikiroot) try: self.__wikiroot.save() except OSError: logger.error("Can't save notes tree settings: {}".format( self.__wikiroot.path)) self.__wikiroot = None postWikiCloseParams = PostWikiCloseParams(wikiPath) self.onPostWikiClose(postWikiCloseParams) self.__wikiroot = value if self.__wikiroot is not None: self.__bindWikiEvents(self.__wikiroot) self.pageUidDepot = PageUidDepot(self.__wikiroot) self.onWikiOpen(self.__wikiroot)
def testChangeUid_06(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] new_uid = " " self.assertRaises(ValueError, depot.changeUid, page, new_uid)
def wikiroot(self, value): """ Установить текущую вики """ self.onWikiClose(self.__wikiroot) if self.__wikiroot is not None: self.__unbindWikiEvents(self.__wikiroot) self.__wikiroot = value if self.__wikiroot is not None: self.__bindWikiEvents(self.__wikiroot) self.pageUidDepot = PageUidDepot(self.__wikiroot) self.onWikiOpen(self.__wikiroot)
def wikiroot(self, value): """ Set wiki as current """ self.onWikiClose(self.__wikiroot) if self.__wikiroot is not None: self.__unbindWikiEvents(self.__wikiroot) self.__wikiroot = value if self.__wikiroot is not None: self.__bindWikiEvents(self.__wikiroot) self.pageUidDepot = PageUidDepot(self.__wikiroot) self.onWikiOpen(self.__wikiroot)
def testClipboardExitedPageLink_html(self): page_uid = PageUidDepot().createUid(self._testpage) parent = LinkDialog(self.mainWindow) Tester.dialogTester.appendOk() selectedString = '' clipboardText = 'page://{uid}'.format(uid=page_uid) copyTextToClipboard(clipboardText) controller = HtmlLinkDialogController(self._testpage, parent, selectedString) controller.showDialog() self.assertEqual(controller.link, clipboardText) self.assertEqual(controller.comment, self._testpage.display_title) self.assertEqual( controller.linkResult, '<a href="page://{uid}">{title}</a>'.format( uid=page_uid, title=self._testpage.display_title))
def testClipboardExitedPageLink_wiki(self): page_uid = PageUidDepot().createUid(self._testpage) parent = LinkDialog(self.mainWindow) Tester.dialogTester.appendOk() selectedString = '' clipboardText = 'page://{uid}'.format(uid=page_uid) copyTextToClipboard(clipboardText) controller = WikiLinkDialogController(self.application, self._testpage, parent, selectedString) controller.showDialog() self.assertEqual(controller.link, clipboardText) self.assertEqual(controller.comment, self._testpage.display_title) self.assertEqual( controller.linkResult, '[[{title} -> page://{uid}]]'.format( title=self._testpage.display_title, uid=page_uid))
def wikiroot(self, value): """ Set wiki as current """ self.onWikiClose(self.__wikiroot) if self.__wikiroot is not None: self.__unbindWikiEvents(self.__wikiroot) try: self.__wikiroot.save() except OSError: logger.error("Can't save notes tree settings: {}".format(self.__wikiroot.path)) self.__wikiroot = None self.__wikiroot = value if self.__wikiroot is not None: self.__bindWikiEvents(self.__wikiroot) self.pageUidDepot = PageUidDepot(self.__wikiroot) self.onWikiOpen(self.__wikiroot)
def _prepareDialog(self): attach = Attachment(self._page) attachList = [ self.createFileLink(fname) for fname in attach.getAttachRelative() if (not fname.startswith(u'__') or os.path.isfile(attach.getFullPath(fname))) ] attachList.sort() self._dlg.linkText.AppendItems(attachList) if not self._dlg.comment: self._dlg.comment = self._selectedString if not self._dlg.link: self._dlg.link = self._findLink() if self._isPageLink(self._dlg.link): prefix = 'page://' uid = self._dlg.link[len(prefix):] page = PageUidDepot(self._page.root)[uid] if page is not None and not self._selectedString: self._dlg.comment = page.display_title
def __init__(self): # Opened wiki self.__wikiroot = None # Application's main window self.__mainWindow = None # Application's global config self.config = None self.recentWiki = None self.actionController = None self.plugins = PluginsLoader(self) self.pageUidDepot = PageUidDepot() # Values for shared purpose self.sharedData = {} self.customEvents = CustomEvents() # Events # Opening wiki event # Parameters: # root - opened wiki root (it may be None) self.onWikiOpen = Event() # Closing wiki event # Parameters: # root - closed wiki root (it may be None) self.onWikiClose = Event() # Updating page wiki event # Parameters: # sender - updated page # **kwargs # kwargs contain 'change' key, which contain changing flags self.onPageUpdate = Event() # Creating new wiki page # Parameters: # sender - new page self.onPageCreate = Event() # Tree updating event # Parameters: # sender - Page, because of which the tree is updated. self.onTreeUpdate = Event() # Other page selection event # Parameters: # sender - selected page self.onPageSelect = Event() # User want insert link to selected attached files to page # Parameters: # fnames - selected file names (names only, without full paths) self.onAttachmentPaste = Event() # Changings in the bookmarks list event # Parameters: # bookmark - Bookmarks class instance self.onBookmarksChanged = Event() # Removing the page event # Parameters: # page - page is removed self.onPageRemove = Event() # Renaming page event # Parameters: # page - page is renamed, # oldSubpath - previous relative path to page self.onPageRename = Event() # Beginning complex tree updating (updating of several steps) event # Parameters: # root - wiki tree root self.onStartTreeUpdate = Event() # Finishing complex tree updating (updating of several steps) event # Parameters: # root - wiki tree root self.onEndTreeUpdate = Event() # Beginning HTML rendering event # Parameters: # page - rendered page # htmlView - window for HTML view self.onHtmlRenderingBegin = Event() # Finishing HTML rendering event # Parameters: # page - rendered page # htmlView - window for HTML view self.onHtmlRenderingEnd = Event() # Changing page order event # Parameters: # page - page with changed order self.onPageOrderChange = Event() # Evont for forced saving page state # (e.g. by the loss the focus or by timer) # Parameters: # -- self.onForceSave = Event() # The event occurs after wiki parser (Parser class) creation, # but before it using # Parameter: # parser - Parser class instance self.onWikiParserPrepare = Event() # Event occurs during preferences dialog creation # Parameters: # dialog - outwiker.gui.preferences.prefdialog.PrefDialog # class instance self.onPreferencesDialogCreate = Event() # Event occurs after preferences dialog closing. # Parameters: # dialog - outwiker.gui.preferences.prefdialog.PrefDialog # class instance self.onPreferencesDialogClose = Event() # Event occurs after (!) the page view creation # (inside CurrentPagePanel instance) # Parameters: # page - new selected page self.onPageViewCreate = Event() # Event occurs before(!) the page view removing # (inside CurrentPagePanel instance) # Parameters: # page - Current selected page self.onPageViewDestroy = Event() # Event occurs after the popup menu creation by right mouse click # on the notes tree # Parameters: # menu - created popup menu, # page - the page on which was right clicked in the notes tree self.onTreePopupMenu = Event() # Event occurs before HTML generation (for wiki and HTML pages) # Order of the calling preprocessing events is not regulated # Parameters: # page - page for which HTML is generated # params - instance of the outwiker.core.events.PreprocessingParams # class self.onPreprocessing = Event() # Event occurs after HTML generation (for wiki and HTML pages) # Order of the calling preprocessing events is not regulated # Parameters: # page - page for which HTML is generated # params - instance of the outwiker.core.events.PostprocessingParams # class self.onPostprocessing = Event() # Event occurs after wiki parsing but before HTML improving # Parameters: # page - page for which HTML is generated # params - instance of the # outwiker.core.events.PreHtmlImprovingParams class self.onPreHtmlImproving = Event() # Event occurs during HtmlImproverFactory instance creation # Parameters: # factory - HtmlImproverFactory instance in which can add # the new HtmlImprover instances by add() method self.onPrepareHtmlImprovers = Event() # Event occurs when cursor hovers under link on preview tab # Parameters: # page - current page # params - instance of the outwiker.core.events.HoverLinkParams # class self.onHoverLink = Event() # Event occurs when user click to link on a page # Parameters: # page - current page # params - instance of the outwiker.core.events.LinkClickParams # class self.onLinkClick = Event() # Event occurs when user click with right button in text editor # Parameters: # page - current page # params - instance of the the # outwiker.core.events.EditorPopupMenuParams class self.onEditorPopupMenu = Event() # Event occurs after page dialog creation # Parameters: # page - current(selected) page # params - instance of the PageDialogInitParams class self.onPageDialogInit = Event() # Event occurs before page dialog will be destroyed # Parameters: # page - current (selected) page # params - instance of the PageDialogDestroyParams class self.onPageDialogDestroy = Event() # Event occurs after page type changing # Parameters: # page - current (selected) page # params - instance of the PageDialogPageTypeChangedParams class self.onPageDialogPageTypeChanged = Event() # Event occurs after page type changing # Parameters: # page - current(selected) page # params - instance of the PageDialogPageTitleChangedParams class self.onPageDialogPageTitleChanged = Event() # Event occurs after page style changing # Parameters: # page - current (selected) page # params - instance of the PageDialogPageStyleChangedParams class self.onPageDialogPageStyleChanged = Event() # Event occurs after page icon changing # Parameters: # page - current (selected) page # params - instance of the PageDialogPageIconChangedParams class self.onPageDialogPageIconChanged = Event() # Event occurs after page tag list changing # Parameters: # page - current(selected) page # params - instance of the PageDialogPageTagsChangedParams class self.onPageDialogPageTagsChanged = Event() # Event occurs during page dialog initialization, # during general panel creation. Evens sender expect what event # handlers will fill the page factories list with addPageFactory method # Parameters: # page - current (selected) page # params - instance of the PageDialogPageFactoriesNeededParams # class self.onPageDialogPageFactoriesNeeded = Event() # Event occurs by TextEditor when it needs styles # Parameters: # page - current (selected) page # params - instance of the EditorStyleNeededParams class self.onEditorStyleNeeded = Event() # Event forces update and render current page # Parameters: # page - current (selected) page # params - instance of the PageUpdateNeededParams class self.onPageUpdateNeeded = Event() # Event occurs before wiki opening # Parameters:D:\0enter\jenyay\projects\outwiker\plugins\statistics\statistics\locale\sv\LC_MESSAGES\ # page - current (selected) page # params - instance of the PreWikiOpenParams class self.onPreWikiOpen = Event() # Event occurs after wiki opening # Parameters: # page - current (selected) page # params - instance of the PostWikiOpenParams class self.onPostWikiOpen = Event() # Event occurs in the IconsPanel after generation list of # the icons groups. # Parameters: # page - current (selected) page # params - instance of the IconsGroupsListInitParams class self.onIconsGroupsListInit = Event() # Event occurs after switch mode of a page: text / preview / HTML / ... # Parameters: # page - current (selected) page # params - instance if the PageModeChangeParams class self.onPageModeChange = Event() # Event occurs after change attached file list. # Parameters: # page - current (selected) page # params - instance if the AttachListChangedParams class self.onAttachListChanged = Event()
def testCreateUid_02(self): depot = PageUidDepot() uid = depot.createUid(self.wikiroot["Страница 1"]) uid_new = depot.createUid(self.wikiroot["Страница 1"]) self.assertEqual(uid, uid_new)
def testCreateUid_03(self): depot = PageUidDepot() uid = depot.createUid(self.wikiroot["Страница 1"]) self.assertEqual(depot[uid.upper()], self.wikiroot["Страница 1"])
def testEmpty(self): depot = PageUidDepot() self.assertEqual(depot["Абырвалг"], None)
def testReadOnly_01(self): depot = PageUidDepot() page = self.wikiroot["Страница 2/Страница 3"] page.readonly = True self.assertRaises(ReadonlyException, depot.createUid, page)