Exemple #1
0
    def testSaveLoad_01(self):
        depot = PageUidDepot()
        uid = depot.createUid(self.wikiroot["Страница 1"])

        depot_new = PageUidDepot(self.wikiroot)

        self.assertEqual(depot_new[uid].title, "Страница 1")
Exemple #2
0
    def testSaveLoad_01(self):
        depot = PageUidDepot()
        uid = depot.createUid(self.wikiroot["Страница 1"])

        depot_new = PageUidDepot(self.wikiroot)

        self.assertEqual(depot_new[uid].title, "Страница 1")
Exemple #3
0
    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")
Exemple #4
0
    def testRemovePage(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]
        uid = depot.createUid(page)

        page.remove()
        self.assertEqual(depot[uid], None)
Exemple #5
0
    def testRemovePage(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]
        uid = depot.createUid(page)

        page.remove()
        self.assertEqual(depot[uid], None)
Exemple #6
0
    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")
Exemple #7
0
    def testReadOnly_02(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]
        depot.createUid(page)

        page.readonly = True

        depot.createUid(page)
Exemple #8
0
    def testChangeUid_09(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]

        new_uid = "АБЫРВАЛГ"
        depot.changeUid(page, new_uid)

        self.assertEqual(depot["абырвалг"].title, "Страница 3")
Exemple #9
0
    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")
Exemple #10
0
    def testChangeUid_09(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]

        new_uid = "АБЫРВАЛГ"
        depot.changeUid(page, new_uid)

        self.assertEqual(depot["абырвалг"].title, "Страница 3")
Exemple #11
0
    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")
Exemple #14
0
    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"")
Exemple #15
0
    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)
Exemple #16
0
    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"], "абырвалг")
Exemple #17
0
    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, "Новый заголовок")
Exemple #18
0
    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, "Новый заголовок")
Exemple #19
0
    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"],
                          "абырвалг")
Exemple #20
0
    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")
Exemple #21
0
    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)
Exemple #22
0
    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)
Exemple #23
0
    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")
Exemple #24
0
    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")
Exemple #25
0
    def testChangeUid_07(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]

        # Запрещено использовать "/" в идентификаторах
        new_uid = "Абырвалг/фвыафыва"
        self.assertRaises(ValueError, depot.changeUid, page, new_uid)
Exemple #26
0
    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)
Exemple #27
0
    def testChangeUid_06(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]

        new_uid = "  "
        self.assertRaises(ValueError,
                          depot.changeUid,
                          page,
                          new_uid)
Exemple #28
0
    def testReadOnly_02(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]
        depot.createUid(page)

        page.readonly = True

        depot.createUid(page)
Exemple #29
0
    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)
Exemple #30
0
    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)
Exemple #31
0
    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")
Exemple #32
0
    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))
Exemple #33
0
    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))
Exemple #34
0
    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)
Exemple #35
0
    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
Exemple #36
0
    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()
Exemple #37
0
    def testCreateUid_02(self):
        depot = PageUidDepot()
        uid = depot.createUid(self.wikiroot["Страница 1"])
        uid_new = depot.createUid(self.wikiroot["Страница 1"])

        self.assertEqual(uid, uid_new)
Exemple #38
0
 def testCreateUid_03(self):
     depot = PageUidDepot()
     uid = depot.createUid(self.wikiroot["Страница 1"])
     self.assertEqual(depot[uid.upper()], self.wikiroot["Страница 1"])
Exemple #39
0
 def testCreateUid_03(self):
     depot = PageUidDepot()
     uid = depot.createUid(self.wikiroot["Страница 1"])
     self.assertEqual(depot[uid.upper()], self.wikiroot["Страница 1"])
Exemple #40
0
    def testCreateUid_02(self):
        depot = PageUidDepot()
        uid = depot.createUid(self.wikiroot["Страница 1"])
        uid_new = depot.createUid(self.wikiroot["Страница 1"])

        self.assertEqual(uid, uid_new)
Exemple #41
0
 def testEmpty(self):
     depot = PageUidDepot()
     self.assertEqual(depot["Абырвалг"], None)
Exemple #42
0
    def testReadOnly_01(self):
        depot = PageUidDepot()
        page = self.wikiroot["Страница 2/Страница 3"]
        page.readonly = True

        self.assertRaises(ReadonlyException, depot.createUid, page)