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 __createWiki (self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.rootwiki = WikiDocument.create (self.path) WikiPageFactory.create (self.rootwiki, u"Страница 2", [])
def __createWiki(self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki(self.path) self.rootwiki = WikiDocument.create(self.path) WikiPageFactory.create(self.rootwiki, u"Страница 2", []) self.testPage = self.rootwiki[u"Страница 2"] self.testPage.content = self.content files = [ u"accept.png", u"add.png", u"anchor.png", u"filename.tmp", u"файл с пробелами.tmp", u"картинка с пробелами.png", "image.jpg", "image.jpeg", "image.png", "image.tif", "image.tiff", "image.gif", "first.jpg", "first_rotate.jpg" ] fullFilesPath = [ os.path.join(self.filesPath, fname) for fname in files ] # Прикрепим к двум страницам файлы Attachment(self.testPage).attach(fullFilesPath)
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 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 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 = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = WikiPageFactory() factory.create(self.wikiroot, "Страница 1", [])
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = WikiPageFactory() factory.create(self.wikiroot, u"Страница 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 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 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 __createWiki(self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki(self.path) self.rootwiki = WikiDocument.create(self.path) WikiPageFactory.create(self.rootwiki, u"Страница 1", []) self.testPage = self.rootwiki[u"Страница 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 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 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 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 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 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 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 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 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 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 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 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 testCacheSubpages (self): """ Проверка кэширования при добавлении новых подстраниц """ hashCalculator = WikiHashCalculator (Application) hash_src = hashCalculator.getHash (self.testPage) # Добавляем новую подстраницу WikiPageFactory.create (self.testPage, u"Подстраница 1", []) hash2 = hashCalculator.getHash (self.testPage) self.assertNotEqual (hash2, hash_src) # Удалим новую страницу self.testPage[u"Подстраница 1"].remove() hash3 = hashCalculator.getHash (self.testPage) self.assertEqual (hash3, hash_src)
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 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 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 testFrequentTags4 (self): WikiPageFactory.create (self.rootwiki, u"Страница 1", [u"тег 1", u"тег 2", u"тег 3"]) WikiPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 2", [u"тег 1", u"тег 3"]) WikiPageFactory.create (self.rootwiki[u"Страница 1/Страница 2"], u"Страница 3", [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.frequentTags), 3) self.assertEqual (treeStat.frequentTags[0][0], u"тег 3") self.assertEqual (treeStat.frequentTags[0][1], 3) self.assertEqual (treeStat.frequentTags[1][0], u"тег 1") self.assertEqual (treeStat.frequentTags[1][1], 2) self.assertEqual (treeStat.frequentTags[2][0], u"тег 2") self.assertEqual (treeStat.frequentTags[2][1], 1)
def __createWiki (self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.rootwiki = WikiDocument.create (self.path) WikiPageFactory.create (self.rootwiki, u"Страница 2", []) self.testPage = self.rootwiki[u"Страница 2"] files = [u"text_utf8.txt", u"text_utf8.txt2", u"image.gif", u"текст_utf8.txt", u"text_1251.txt", u"html.txt", u"html_1251.txt", u"wiki.txt"] fullFilesPath = [os.path.join (self.filesPath, fname) for fname in files] # Прикрепим к двум страницам файлы Attachment (self.testPage).attach (fullFilesPath)
def __createWiki(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = WikiPageFactory() factory.create(self.wikiroot, u"Страница 2", []) factory.create(self.wikiroot[u"Страница 2"], u"#Страница3", []) factory.create(self.wikiroot[u"Страница 2"], u"# Страница 4", []) 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)
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 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 setUp(self): self.initApplication() self.wikiroot = self.createWiki() copyTextToClipboard('') self._config = WikiConfig(self.application.config) self._config.linkStyleOptions.value = 0 self.files = ['../test/samplefiles/accept.png', '../test/samplefiles/add.png', '../test/samplefiles/html.txt', ] factory = WikiPageFactory() self._testpage = factory.create(self.wikiroot, "Страница 1", [])
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