def testAttachmentsSizeWiki1 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.attachmentsSize, 0)
def testParseWithoutAttaches (self): pagetitle = u"Страница 666" WikiPageFactory.create (self.rootwiki, pagetitle, []) parser = Parser(self.rootwiki[pagetitle], Application.config) parser.toHtml (u"Attach:bla-bla-bla")
def testPageCount2 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] treeStat = self.loader[self.__pluginname].getTreeStat (testPage) self.assertEqual (treeStat.pageCount, 1)
def __createWiki (self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.rootwiki = WikiDocument.create (self.path) WikiPageFactory.create (self.rootwiki, u"Страница 2", [])
def registerActions (application): """ Зарегистрировать действия """ # Действия, связанные с разными типами страниц from outwiker.pages.html.htmlpage import HtmlPageFactory HtmlPageFactory.registerActions (application) from outwiker.pages.wiki.wikipage import WikiPageFactory WikiPageFactory.registerActions (application) actionController = application.actionController from outwiker.gui.actionslist import actionsList, polyactionsList # Register the normal actions map(lambda item: actionController.register(item[0](application), item[1]), actionsList) # Register the polyactions map(lambda item: actionController.register(PolyAction(application, item[0], item[1], item[2]), item[3]), polyactionsList)
def createNewWiki (parentwnd): """ Создать новую вики parentwnd - окно-владелец диалога выбора файла """ dlg = wx.FileDialog (parentwnd, style = wx.FD_SAVE) newPageTitle = _(u"First Wiki Page") newPageContent = _(u"""!! First Wiki Page This is the first page. You can use a text formating: '''bold''', ''italic'', {+underlined text+}, [[http://jenyay.net | link]] and others. """) if dlg.ShowModal() == wx.ID_OK: try: from outwiker.pages.wiki.wikipage import WikiPageFactory newwiki = WikiDocument.create (dlg.GetPath ()) WikiPageFactory.create (newwiki, newPageTitle, [_(u"test")]) firstPage = newwiki[newPageTitle] firstPage.content = newPageContent Application.wikiroot = newwiki Application.wikiroot.selectedPage = firstPage except (IOError, OSError) as e: # TODO: проверить под Windows MessageBox (_(u"Can't create wiki\n") + unicode (str (e), "utf8"), _(u"Error"), wx.OK | wx.ICON_ERROR) dlg.Destroy()
def setUp (self): super (WikiTableDialogTest, self).setUp() self._application = Application config = GeneralGuiConfig (self._application.config) config.tableColsCount.remove_option() factory = WikiPageFactory() self._testpage = factory.create (self.wikiroot, u"Страница 1", [])
def testMaxDepth3 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) WikiPageFactory.create (self.rootwiki, u"Страница 2", []) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) self.assertEqual (len (treeStat.maxDepth), 2) self.assertEqual (treeStat.maxDepth[0][0], 1)
def testFrequentTags2 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", [u"тег 1"]) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) self.assertEqual (len (treeStat.frequentTags), 1) self.assertEqual (treeStat.frequentTags[0][0], u"тег 1") self.assertEqual (treeStat.frequentTags[0][1], 1)
def testSymbolsNotWhiteSpacesWiki (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"Бла бла бла\r\n\t\t\tАбырвалг " pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.symbolsNotWhiteSpaces, 17)
def testSymbolsCountWiki (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"Бла бла бла" pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.symbols, 11)
def testAttachmentsSizeWiki4 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] Attachment (testPage).attach (self.fullFilesPath) pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertAlmostEqual (pageStat.attachmentsSize, 11771, delta=300)
def testAttachmentsSizeWiki3 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] Attachment (testPage).attach (self.fullFilesPath[0:3]) pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.attachmentsSize, 2037)
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() config = GeneralGuiConfig(self.application.config) config.tableColsCount.remove_option() factory = WikiPageFactory() self._testpage = factory.create(self.wikiroot, "Страница 1", [])
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = WikiPageFactory() factory.create(self.wikiroot, "Страница 1", [])
def testAttachmentSize2 (self): treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) WikiPageFactory.create (self.rootwiki, u"Страница 1", []) pagesList = treeStat.pageAttachmentsSize self.assertEqual (len (pagesList), 1) self.assertEqual (pagesList[0][0], self.rootwiki[u"Страница 1"]) self.assertEqual (pagesList[0][1], 0)
def testPageCount5 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", []) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory.create (self.rootwiki, u"Страница 4", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 5", []) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) self.assertEqual (treeStat.pageCount, 5)
def setUp (self): BaseMainWndTest.setUp (self) self.path = u"../test/testwiki" removeWiki (self.path) self.wikiroot = WikiDocument.create (self.path) WikiPageFactory.create (self.wikiroot, u"Викистраница", []) WikiPageFactory.create (self.wikiroot, u"Викистраница 2", [])
def testTagsCount4 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", [u"Тег 1", u"Тег 2", u"Тег 3"]) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", [u"Тег 4"]) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", [u"Тег 1", u"Тег 2"]) WikiPageFactory.create (self.rootwiki, u"Страница 4", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 5", []) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) self.assertEqual (treeStat.tagsCount, 4)
def testPageContentLength2 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) self.rootwiki[u"Страница 1"].content = u"Бла" treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) pagesList = treeStat.pageContentLength self.assertEqual (len (pagesList), 1) self.assertEqual (pagesList[0][0], self.rootwiki[u"Страница 1"]) self.assertEqual (pagesList[0][1], 3)
def testMaxDepth4 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", []) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory.create (self.rootwiki, u"Страница 4", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 5", []) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) self.assertEqual (len (treeStat.maxDepth), 1) self.assertEqual (treeStat.maxDepth[0][0], 3) self.assertEqual (treeStat.maxDepth[0][1], self.rootwiki[u"Страница 1/Страница 2/Страница 3"])
def testLinesWiki1 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"""Бла бла бла Еще одна строка И еще строка Последняя строка""" pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.lines, 4)
def _create_tree(level, maxlevel, nsiblings, parent): from outwiker.pages.wiki.wikipage import WikiPageFactory if level <= maxlevel: for n in range(nsiblings): pagename = u'page_{:03g}_{:03g}'.format(level, n) print(u'Create page {}'.format(pagename)) newpage = WikiPageFactory().create(parent, pagename, []) newpage.content = u'Абырвалг' newpage.icon = u'images/outwiker_16.png' _create_tree(level + 1, maxlevel, nsiblings, newpage)
def setUp (self): self.path = u"../test/testwiki" removeWiki (self.path) self.wikiroot = WikiDocument.create (self.path) WikiPageFactory.create (self.wikiroot, u"Страница 1", []) self.testPage = self.wikiroot[u"Страница 1"] filesPath = u"../test/samplefiles/" self.files = [u"accept.png", u"add.png", u"first.jpg", u"image.jpeg", u"файл с пробелами.tmp"] self.fullFilesPath = [os.path.join (filesPath, fname) for fname in self.files]
def setUp(self): super(LinkDialogControllerTest, self).setUp() copyTextToClipboard(u'') self._config = WikiConfig(Application.config) self._config.linkStyleOptions.value = 0 self.files = [u'../test/samplefiles/accept.png', u'../test/samplefiles/add.png', u'../test/samplefiles/html.txt', ] factory = WikiPageFactory() self._testpage = factory.create(self.wikiroot, u"Страница 1", [])
def testPageContentLength3 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", []) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory.create (self.rootwiki, u"Страница 4", []) self.rootwiki[u"Страница 1"].content = u"Бла" self.rootwiki[u"Страница 1/Страница 2"].content = u" Бла-бла-бла " self.rootwiki[u"Страница 1/Страница 2/Страница 3"].content = u"Бла-" self.rootwiki[u"Страница 4"].content = u" Бла-бла " treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) pagesList = treeStat.pageContentLength self.assertEqual (len (pagesList), 4) self.assertEqual (pagesList[0][0], self.rootwiki[u"Страница 1/Страница 2"]) self.assertEqual (pagesList[0][1], 11) self.assertEqual (pagesList[1][0], self.rootwiki[u"Страница 4"]) self.assertEqual (pagesList[1][1], 7) self.assertEqual (pagesList[2][0], self.rootwiki[u"Страница 1/Страница 2/Страница 3"]) self.assertEqual (pagesList[2][1], 4) self.assertEqual (pagesList[3][0], self.rootwiki[u"Страница 1"]) self.assertEqual (pagesList[3][1], 3)
def testAttachmentSize4 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", []) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory.create (self.rootwiki, u"Страница 4", []) SearchPageFactory.create (self.rootwiki, u"Страница 5", []) Attachment (self.rootwiki[u"Страница 1"]).attach ([]) Attachment (self.rootwiki[u"Страница 1/Страница 2"]).attach (self.fullFilesPath[0:1]) Attachment (self.rootwiki[u"Страница 1/Страница 2/Страница 3"]).attach (self.fullFilesPath[0:2]) Attachment (self.rootwiki[u"Страница 4"]).attach (self.fullFilesPath[0:3]) Attachment (self.rootwiki[u"Страница 5"]).attach (self.fullFilesPath) treeStat = self.loader[self.__pluginname].getTreeStat (self.rootwiki) pagesList = treeStat.pageAttachmentsSize self.assertEqual (len (pagesList), 5) self.assertEqual (pagesList[4][0], self.rootwiki[u"Страница 1"]) self.assertEqual (pagesList[4][1], 0) self.assertEqual (pagesList[0][0], self.rootwiki[u"Страница 5"]) self.assertAlmostEqual (pagesList[0][1], 11771, delta=300) self.assertEqual (pagesList[1][0], self.rootwiki[u"Страница 4"]) self.assertEqual (pagesList[1][1], 2037)
def testWordsWiki2 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"""Бла бла бла. Еще одна строка111 222 333 И еще строка ... ... ;;; @#$%#$ Последняя строка """ pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.words, 13)
def setUp (self): BaseMainWndTest.setUp (self) self._turnSyntax = [ (BOLD_STR_ID, "'''", "'''"), (ITALIC_STR_ID, "''", "''"), (BOLD_ITALIC_STR_ID, "''''", "''''"), (UNDERLINE_STR_ID, "{+", "+}"), (STRIKE_STR_ID, "{-", "-}"), (SUBSCRIPT_STR_ID, "'_", "_'"), (SUPERSCRIPT_STR_ID, "'^", "^'"), (ALIGN_LEFT_STR_ID, "%left%", ""), (ALIGN_CENTER_STR_ID, "%center%", ""), (ALIGN_RIGHT_STR_ID, "%right%", ""), (ALIGN_JUSTIFY_STR_ID, "%justify%", ""), (HEADING_1_STR_ID, "!! ", ""), (HEADING_2_STR_ID, "!!! ", ""), (HEADING_3_STR_ID, "!!!! ", ""), (HEADING_4_STR_ID, "!!!!! ", ""), (HEADING_5_STR_ID, "!!!!!! ", ""), (HEADING_6_STR_ID, "!!!!!!! ", ""), (PREFORMAT_STR_ID, "[@", "@]"), (CODE_STR_ID, "@@", "@@"), (ANCHOR_STR_ID, "[[#", "]]"), (QUOTE_STR_ID, "[>", "<]"), ] self._replaceSyntax = [ (HORLINE_STR_ID, u"----"), ] self.path = u"../test/testwiki" removeWiki (self.path) self.wikiroot = WikiDocument.create (self.path) WikiPageFactory.create (self.wikiroot, u"Викистраница", []) WikiPageFactory.create (self.wikiroot, u"temp", []) # Страница, куда будем переключаться перед изменением содержимого основной страницы # Можно было бы вместо temppage использовать None, но тогда программе # пришлось бы каждый раз удалять и создавать панели инструментов, что медленно self.temppage = self.wikiroot[u"temp"] self.testpage = self.wikiroot[u"Викистраница"] Application.wikiroot = self.wikiroot Application.selectedPage = self.testpage
def testCacheSubpages (self): """ Проверка кэширования при добавлении новых подстраниц """ # Только создали страницу, кешировать нельзя generator = HtmlGenerator (self.testPage) self.assertFalse (generator.canReadFromCache()) generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertTrue (generator.canReadFromCache()) # Добавляем новую подстраницу WikiPageFactory.create (self.testPage, u"Подстраница 1", []) self.assertFalse (generator.canReadFromCache()) generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertTrue (generator.canReadFromCache())
def testMultitype_01(self): WikiPageFactory().create(self.wikiroot, "Викистраница", []) page = self.wikiroot["Викистраница"] path = os.path.join(page.path, self.styleFile) TextPageFactory().create(page, "Текстовая страница", []) SearchPageFactory().create(page, "Страница поиска", []) HtmlPageFactory().create(page, "HTML-страница", []) self.application.wikiroot = self.wikiroot self.application.selectedPage = None Tester.dialogTester.append(self.__selectSecond) self.application.actionController.getAction( SetStyleToBranchAction.stringId).run(None) self.assertEqual(Tester.dialogTester.count, 0) self.assertTrue(os.path.exists(path)) self.assertTrue(os.path.exists(page.getHtmlPath()))
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, "Страница 2", []) self.testPage = self.wikiroot["Страница 2"] files = [ "text_utf8.txt", "text_utf8.txt2", "image.gif", "текст_utf8.txt", "text_1251.txt", "html.txt", "html_1251.txt", "wiki.txt" ] fullFilesPath = [ os.path.join(self.filesPath, fname) for fname in files ] # Прикрепим к двум страницам файлы Attachment(self.testPage).attach(fullFilesPath)
def testSingle_04 (self): WikiPageFactory().create (self.wikiroot, u"Викистраница", []) page = self.wikiroot[u"Викистраница"] path = os.path.join (page.path, self.styleFile) Application.wikiroot = self.wikiroot Application.selectedPage = page Tester.dialogTester.append (self.__selectSecond) Application.actionController.getAction (SetStyleToBranchAction.stringId).run(None) self.assertEqual (Tester.dialogTester.count, 0) self.assertTrue (os.path.exists (path)) self.assertTrue (os.path.exists (page.getHtmlPath())) Tester.dialogTester.append (self.__selectDefault) Application.actionController.getAction (SetStyleToBranchAction.stringId).run(None) self.assertEqual (Tester.dialogTester.count, 0) self.assertFalse (os.path.exists (path))
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() self._dialog = IncludeDialog(self.application.mainWindow) WikiPageFactory().create(self.wikiroot, "Викистраница", []) self.testedPage = self.wikiroot["Викистраница"] filesPath = "testdata/samplefiles/" self.files = [ "accept.png", "add.png", "anchor.png", "файл с пробелами.tmp", "dir" ] self.fullFilesPath = [ os.path.join(filesPath, fname) for fname in self.files ] Attachment(self.testedPage).attach(self.fullFilesPath) Tester.dialogTester.clear()
def setUp(self): self.__pluginname = "Source" self.initApplication() self.wikiroot = self.createWiki() self.testPage = WikiPageFactory().create(self.wikiroot, "Страница 1", []) dirlist = ["plugins/source"] self.loader = PluginsLoader(self.application) self.loader.load(dirlist) self.config = self.loader[self.__pluginname].config self.config.tabWidth.value = 4 self.config.defaultLanguage.remove_option() self.application.config.remove_section(self.config.section) from source.insertdialogcontroller import InsertDialogController self.dialog = FakeInsertDialog() self.controller = InsertDialogController( self.testPage, self.dialog, self.config)
def testTypeCreation(self): textPage = TextPageFactory().create(self.wikiroot, u"Текстовая страница", []) self.assertEqual(TextWikiPage, type(textPage)) wikiPage = WikiPageFactory().create(self.wikiroot, u"Вики-страница", []) self.assertEqual(WikiWikiPage, type(wikiPage)) htmlPage = HtmlPageFactory().create(self.wikiroot, u"HTML-страница", []) self.assertEqual(HtmlWikiPage, type(htmlPage)) searchPage = SearchPageFactory().create(self.wikiroot, u"Поисковая страница", []) self.assertEqual(SearchWikiPage, type(searchPage))
def setUp(self): self.__pluginname = "Source" self.initApplication() self.wikiroot = self.createWiki() self.testPage = WikiPageFactory().create(self.wikiroot, "Страница 1", []) dirlist = ["plugins/source"] self._stylesCount = 44 self.loader = PluginsLoader(self.application) self.loader.load(dirlist) self.config = self.loader[self.__pluginname].config self._clearConfig(self.config) from source.insertdialogcontroller import InsertDialogController self.dialog = FakeInsertDialog() self.controller = InsertDialogController( self.testPage, self.dialog, self.config)
def setUp(self): self.__pluginname = "Source" self.initApplication() self.wikiroot = self.createWiki() self.testPage = WikiPageFactory().create(self.wikiroot, "Страница 1", []) dirlist = ["plugins/source"] # Путь, где лежат примеры исходников в разных кодировках self.samplefilesPath = "testdata/samplefiles/sources" self.loader = PluginsLoader(self.application) self.loader.load(dirlist) self.config = self.loader[self.__pluginname].config self.config.tabWidth.value = 4 self.config.defaultLanguage.remove_option() self.factory = ParserFactory() self.parser = self.factory.make(self.testPage, self.application.config)
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() self.testPage = WikiPageFactory().create(self.wikiroot, "Страница 1", []) plugins_dir = ["plugins/snippets"] self.loader = PluginsLoader(self.application) self.loader.load(plugins_dir) factory = ParserFactory() self.parser = factory.make(self.testPage, self.application.config) from snippets.utils import getSnippetsDir root_snippets_dir = getSnippetsDir() # snippets dir for tests self._snippets_dir = os.path.join( root_snippets_dir, '__test_snippets') os.mkdir(self._snippets_dir)
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, "Страница 2", []) self.testPage = self.wikiroot["Страница 2"] files = ["accept.png", "add.png", "anchor.png", "filename.tmp", "файл с пробелами.tmp", "картинка с пробелами.png", "image.jpg", "image.jpeg", "image.png", "image.tif", "image.tiff", "image.gif", "image_01.JPG", "dir", "dir.xxx", "dir.png"] fullFilesPath = [ os.path.join( self.filesPath, fname) for fname in files] self.attach_page2 = Attachment(self.wikiroot["Страница 2"]) # Прикрепим к двум страницам файлы Attachment(self.testPage).attach(fullFilesPath)
def setUp(self): # Количество срабатываний особытий при обновлении страницы self._pageUpdateCount = 0 self._pageUpdateSender = None # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.eventcount = 0 self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, "Викистраница 1", []) HtmlPageFactory().create(self.wikiroot, "Html-страница 2", []) self._styleFname = "__style.html" self._styleDir = "__style" self._exampleStyleDir = "../test/styles/example_jblog/example_jblog" self._exampleStyleDir2 = "../test/styles/example_jnet/example_jnet" self._invalidStyleDir = "../styles/invalid" self._testStylePath = os.path.join(self._exampleStyleDir, self._styleFname) Application.wikiroot = self.wikiroot Application.onPageUpdate += self.onPageUpdate
def __createWiki(self): # Здесь будет создаваться вики self.filesPath = u"../test/samplefiles/" self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, u"Страница 2", []) self.testPage = self.wikiroot[u"Страница 2"] files = [ u"accept.png", u"add.png", u"anchor.png", u"filename.tmp", u"файл с пробелами.tmp", u"картинка с пробелами.png", u"image.jpg", u"image.jpeg", u"image.png", u"image.tif", u"image.tiff", u"image.gif", u"image_01.JPG", u"dir", u"dir.xxx", u"dir.png" ] fullFilesPath = [ os.path.join(self.filesPath, fname) for fname in files ] # Прикрепим к двум страницам файлы Attachment(self.testPage).attach(fullFilesPath) factory = ParserFactory() self.parser = factory.make(self.testPage, Application.config)
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = WikiPageFactory() self.page_1 = factory.create(self.wikiroot, "Страница 1", []) time.sleep(0.1) self.page_2 = factory.create(self.wikiroot["Страница 1"], "Страница 2", []) time.sleep(0.1) self.page_4 = factory.create(self.wikiroot["Страница 1"], "Страница 4", []) time.sleep(0.1) self.page_3 = factory.create(self.wikiroot["Страница 1"], "СТРАНИЦА 3", []) self.testPage = self.wikiroot["Страница 1"]
def __createWiki(self): # Здесь будет создаваться вики WikiPageFactory().create(self.wikiroot, u"Викистраница", []) TextPageFactory().create(self.wikiroot, u"Текст", []) HtmlPageFactory().create(self.wikiroot, u"HTML", []) SearchPageFactory().create(self.wikiroot, u"Search", [])
class FactorySelector(object): """ Класс, который выбирает нужную фабрику для каждой страницы """ _defaultFactory = TextPageFactory() _factories = { factory.getTypeString(): factory for factory in [ WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory() ] } @staticmethod def getFactories(): return sorted(FactorySelector._factories.values(), cmp=lambda x, y: cmp(x.title, y.title)) @staticmethod def getFactory(pageType): """ Найти фабрику, которая работает с переданным типом страницы (со страницей данного типа). Или вернуть фабрику по умолчанию """ return FactorySelector._factories.get(pageType, FactorySelector._defaultFactory) @staticmethod def reset(): """ Установить словарь фабрик в первоначальное состояние. Используется для тестирования. Это не конструктор. В случае изменения списка фабрик, установленных по умолчанию, нужно изменять этот метод. """ FactorySelector._factories = { factory.getTypeString(): factory for factory in [ WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory() ] } @staticmethod def addFactory(newFactory): """ Добавить новую фабрику. При этом у фабрики может быть новый создаваемый тип страниц, в то же время фабрика может заменить существующую фабрику. """ FactorySelector._factories[newFactory.getTypeString()] = newFactory @staticmethod def removeFactory(typeString): """ Удаляет фабрику из словаря """ FactorySelector._factories.pop(typeString, None)
def __createWiki(self): self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, "Страница 2", []) self.testPage = self.wikiroot["Страница 2"]
def registerActions(application): """ Зарегистрировать действия """ # Действия, связанные с разными типами страниц from outwiker.pages.html.htmlpage import HtmlPageFactory HtmlPageFactory.registerActions(application) from outwiker.pages.wiki.wikipage import WikiPageFactory WikiPageFactory.registerActions(application) # Открыть... from outwiker.actions.open import OpenAction application.actionController.register(OpenAction(application), HotKey("O", ctrl=True)) # Создать... from outwiker.actions.new import NewAction application.actionController.register(NewAction(application), HotKey("N", ctrl=True)) # Открыть только для чтения from outwiker.actions.openreadonly import OpenReadOnlyAction application.actionController.register(OpenReadOnlyAction(application), HotKey("O", ctrl=True, shift=True)) # Закрыть from outwiker.actions.close import CloseAction application.actionController.register(CloseAction(application), HotKey("W", ctrl=True, shift=True)) # Сохранить from outwiker.actions.save import SaveAction application.actionController.register(SaveAction(application), HotKey("S", ctrl=True)) # Печать from outwiker.actions.printaction import PrintAction application.actionController.register(PrintAction(application), HotKey("P", ctrl=True)) # Выход from outwiker.actions.exit import ExitAction application.actionController.register(ExitAction(application), HotKey("F4", alt=True)) # Показать / скрыть панель с прикрепленными файлами from outwiker.actions.showhideattaches import ShowHideAttachesAction application.actionController.register(ShowHideAttachesAction(application)) # Показать / скрыть панель с деревом заметок from outwiker.actions.showhidetree import ShowHideTreeAction application.actionController.register(ShowHideTreeAction(application)) # Показать / скрыть панель с тегами from outwiker.actions.showhidetags import ShowHideTagsAction application.actionController.register(ShowHideTagsAction(application)) # Полноэкранный режим from outwiker.actions.fullscreen import FullScreenAction application.actionController.register(FullScreenAction(application), HotKey("F11")) # Поиск from outwiker.actions.search import SearchAction, SearchNextAction, SearchPrevAction, SearchAndReplaceAction application.actionController.register(SearchAction(application), HotKey("F", ctrl=True)) application.actionController.register(SearchNextAction(application), HotKey("F3")) application.actionController.register(SearchPrevAction(application), HotKey("F3", shift=True)) application.actionController.register(SearchAndReplaceAction(application), HotKey("H", ctrl=True)) # Вызов настроек from outwiker.actions.preferences import PreferencesAction application.actionController.register(PreferencesAction(application), HotKey("F8", ctrl=True)) # Добавить страницу того же уровня from outwiker.actions.addsiblingpage import AddSiblingPageAction application.actionController.register(AddSiblingPageAction(application), HotKey("T", ctrl=True, alt=True)) # Добавить дочернюю страницу from outwiker.actions.addchildpage import AddChildPageAction application.actionController.register(AddChildPageAction(application), HotKey("T", ctrl=True, shift=True)) # Переместить страницу на одну позицию вверх from outwiker.actions.movepageup import MovePageUpAction application.actionController.register(MovePageUpAction(application), HotKey("Up", ctrl=True, shift=True)) # Переместить страницу на одну позицию вниз from outwiker.actions.movepagedown import MovePageDownAction application.actionController.register( MovePageDownAction(application), HotKey("Down", ctrl=True, shift=True)) # Сортировка дочерних страниц по алфавиту from outwiker.actions.sortchildalpha import SortChildAlphabeticalAction application.actionController.register( SortChildAlphabeticalAction(application), None) # Сортировка страниц того же уровня, что и выбранная, по алфавиту from outwiker.actions.sortsiblingsalpha import SortSiblingsAlphabeticalAction application.actionController.register( SortSiblingsAlphabeticalAction(application), None) # Переименование текущей страницы from outwiker.actions.renamepage import RenamePageAction application.actionController.register(RenamePageAction(application), HotKey("F2")) # Удаление текущей страницы from outwiker.actions.removepage import RemovePageAction application.actionController.register( RemovePageAction(application), HotKey("Delete", ctrl=True, shift=True)) # Редактирование свойств страницы from outwiker.actions.editpageprop import EditPagePropertiesAction application.actionController.register( EditPagePropertiesAction(application), HotKey("E", ctrl=True)) # Добавление закладки from outwiker.actions.addbookmark import AddBookmarkAction application.actionController.register(AddBookmarkAction(application), HotKey("D", ctrl=True)) # Добавление вкладки from outwiker.actions.tabs import AddTabAction application.actionController.register(AddTabAction(application), HotKey("T", ctrl=True)) # Закрытие вкладки from outwiker.actions.tabs import CloseTabAction application.actionController.register(CloseTabAction(application), HotKey("W", ctrl=True)) # Перейти на предыдущую вкладку from outwiker.actions.tabs import PreviousTabAction application.actionController.register( PreviousTabAction(application), HotKey("PageUp", ctrl=True, shift=True)) # Перейти на следующую вкладку from outwiker.actions.tabs import NextTabAction application.actionController.register( NextTabAction(application), HotKey("PageDown", ctrl=True, shift=True)) # Открыть или создать страницу глобального поиска from outwiker.actions.globalsearch import GlobalSearchAction application.actionController.register(GlobalSearchAction(application), HotKey("F", ctrl=True, shift=True)) # Прикрепить файлы к странице from outwiker.actions.attachfiles import AttachFilesAction application.actionController.register(AttachFilesAction(application), HotKey("A", ctrl=True, alt=True)) # Открыть папку с прикрепленными файлами from outwiker.actions.openattachfolder import OpenAttachFolderAction application.actionController.register( OpenAttachFolderAction(application), HotKey("A", ctrl=True, shift=True, alt=True)) import outwiker.actions.clipboard as clipboard # Копировать заголовок текущей страницы application.actionController.register( clipboard.CopyPageTitleAction(application), HotKey("D", ctrl=True, shift=True)) # Копировать путь до текущей страницы application.actionController.register( clipboard.CopyPagePathAction(application), HotKey("P", ctrl=True, shift=True)) # Копировать путь до прикрепленных файлов application.actionController.register( clipboard.CopyAttachPathAction(application), HotKey("A", ctrl=True, shift=True)) # Копировать ссылку на текущую страницу application.actionController.register( clipboard.CopyPageLinkAction(application), HotKey("L", ctrl=True, shift=True)) import outwiker.actions.tags as tags # Добавить метки к ветке application.actionController.register( tags.AddTagsToBranchAction(application), None) # Удалить метки из ветки application.actionController.register( tags.RemoveTagsFromBranchAction(application), None) # Переименовать метку application.actionController.register(tags.RenameTagAction(application), None) # Перезагрузить вики from outwiker.actions.reloadwiki import ReloadWikiAction application.actionController.register(ReloadWikiAction(application), HotKey("R", ctrl=True)) # Вызов справки from outwiker.actions.openhelp import OpenHelpAction application.actionController.register(OpenHelpAction(application), HotKey("F1")) # "О программе" from outwiker.actions.about import AboutAction application.actionController.register(AboutAction(application), HotKey("F1", ctrl=True)) # Назад from outwiker.actions.history import HistoryBackAction, HistoryForwardAction application.actionController.register(HistoryBackAction(application), HotKey("Left", ctrl=True, alt=True)) application.actionController.register(HistoryForwardAction(application), HotKey("Right", ctrl=True, alt=True)) # Применить стиль страницы ко всей ветке from outwiker.actions.applystyle import SetStyleToBranchAction application.actionController.register(SetStyleToBranchAction(application), None) from outwiker.actions.openpluginsfolder import OpenPluginsFolderAction application.actionController.register(OpenPluginsFolderAction(application), None) # Moving on pages from outwiker.actions.moving import (GoToParentAction, GoToFirstChildAction, GoToNextSiblingAction, GoToPrevSiblingAction) application.actionController.register(GoToParentAction(application), HotKey("Left", ctrl=True)) application.actionController.register(GoToFirstChildAction(application), HotKey("Right", ctrl=True)) application.actionController.register(GoToNextSiblingAction(application), HotKey("Down", ctrl=True)) application.actionController.register(GoToPrevSiblingAction(application), HotKey("Up", ctrl=True)) _registerPolyActions(application)
def setUp(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) # - Страница 1 # - # Страница 5 # - Страница 6 # - Страница 2 # - Страница 3 # - # Страница 4 factory = WikiPageFactory() factory.create(self.wikiroot, u"Страница 1", []) factory.create(self.wikiroot, u"Страница 2", []) factory.create(self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create(self.wikiroot[u"Страница 2/Страница 3"], u"# Страница 4", []) factory.create(self.wikiroot[u"Страница 1"], u"# Страница 5", []) factory.create(self.wikiroot[u"Страница 1"], u"Страница 6", []) factory.create(self.wikiroot[u"Страница 1/# Страница 5"], u"Страница 7", []) filesPath = u"../test/samplefiles/" self.files = [ u"accept.png", u"add.png", u"anchor.png", u"файл с пробелами.tmp", u"dir" ] self.fullFilesPath = [ os.path.join(filesPath, fname) for fname in self.files ] Attachment(self.wikiroot[u"Страница 1"]).attach(self.fullFilesPath) Attachment(self.wikiroot[u"Страница 1/# Страница 5"]).attach( self.fullFilesPath) Application.wikiroot = None
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) WikiPageFactory().create(self.wikiroot, u'Страница 1', [])
def setUp(self): self._tmp_dirs = [] self.path = mkdtemp(prefix='WikiStyleUtilsTest_') self.wikiroot = WikiDocument.create(self.path) self.testPage = WikiPageFactory().create(self.wikiroot, "Страница", [])
def __createWiki(self): WikiPageFactory().create(self.wikiroot, "Страница 1", [])
def _createPage(self): return WikiPageFactory().create(self.wikiroot, u"Викистраница", [])