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 testAttachmentsSizeSearch1 (self): SearchPageFactory.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 setUp(self): BaseMainWndTest.setUp(self) TextPageFactory().create(self.wikiroot, u"Текстовая страница", []) TextPageFactory().create(self.wikiroot, u"Текстовая страница 2", []) HtmlPageFactory().create(self.wikiroot, u"HTML-страница", []) HtmlPageFactory().create(self.wikiroot, u"HTML-страница 2", []) WikiPageFactory().create(self.wikiroot, u"Викистраница", []) WikiPageFactory().create(self.wikiroot, u"Викистраница 2", []) SearchPageFactory().create(self.wikiroot, u"Поисковая страница", []) SearchPageFactory().create(self.wikiroot, u"Поисковая страница 2", [])
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() TextPageFactory().create(self.wikiroot, "Текстовая страница", []) TextPageFactory().create(self.wikiroot, "Текстовая страница 2", []) HtmlPageFactory().create(self.wikiroot, "HTML-страница", []) HtmlPageFactory().create(self.wikiroot, "HTML-страница 2", []) WikiPageFactory().create(self.wikiroot, "Викистраница", []) WikiPageFactory().create(self.wikiroot, "Викистраница 2", []) SearchPageFactory().create(self.wikiroot, "Поисковая страница", []) SearchPageFactory().create(self.wikiroot, "Поисковая страница 2", [])
def testAttachmentSize4(self): from statistics.treestat import TreeStat WikiPageFactory().create(self.wikiroot, u"Страница 1", []) WikiPageFactory().create(self.wikiroot[u"Страница 1"], u"Страница 2", []) WikiPageFactory().create(self.wikiroot[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory().create(self.wikiroot, u"Страница 4", []) SearchPageFactory().create(self.wikiroot, u"Страница 5", []) Attachment(self.wikiroot[u"Страница 1"]).attach([]) Attachment(self.wikiroot[u"Страница 1/Страница 2"]).attach( self.fullFilesPath[0:1]) Attachment(self.wikiroot[u"Страница 1/Страница 2/Страница 3"]).attach( self.fullFilesPath[0:2]) Attachment(self.wikiroot[u"Страница 4"]).attach( self.fullFilesPath[0:3]) Attachment(self.wikiroot[u"Страница 5"]).attach(self.fullFilesPath) treeStat = TreeStat(self.wikiroot) pagesList = treeStat.pageAttachmentsSize self.assertEqual(len(pagesList), 5) self.assertEqual(pagesList[4][0], self.wikiroot[u"Страница 1"]) self.assertEqual(pagesList[4][1], 0) self.assertEqual(pagesList[0][0], self.wikiroot[u"Страница 5"]) self.assertAlmostEqual(pagesList[0][1], 11771, delta=300) self.assertEqual(pagesList[1][0], self.wikiroot[u"Страница 4"]) self.assertEqual(pagesList[1][1], 2037)
def testPageContentLength4(self): from statistics.treestat import TreeStat WikiPageFactory().create(self.wikiroot, u"Страница 1", []) WikiPageFactory().create(self.wikiroot[u"Страница 1"], u"Страница 2", []) WikiPageFactory().create(self.wikiroot[u"Страница 1/Страница 2"], u"Страница 3", []) WikiPageFactory().create(self.wikiroot, u"Страница 4", []) SearchPageFactory().create(self.wikiroot, u"Страница 5", []) self.wikiroot[u"Страница 1"].content = u"Бла" self.wikiroot[u"Страница 1/Страница 2"].content = u" Бла-бла-бла " self.wikiroot[u"Страница 1/Страница 2/Страница 3"].content = u"Бла-" self.wikiroot[ u"Страница 4"].content = u" Бла-бла " treeStat = TreeStat(self.wikiroot) pagesList = treeStat.pageContentLength self.assertEqual(len(pagesList), 5) self.assertEqual(pagesList[4][0], self.wikiroot[u"Страница 5"]) self.assertEqual(pagesList[4][1], 0)
def runTest(): from statistics.pagestat import PageStat SearchPageFactory().create(self.wikiroot, "Страница 1", []) testPage = self.wikiroot["Страница 1"] pageStat = PageStat(testPage) pageStat.symbols
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 testAttachmentsCountSearch1(self): from statistics.pagestat import PageStat SearchPageFactory().create(self.wikiroot, u"Страница 1", []) testPage = self.wikiroot[u"Страница 1"] Attachment(testPage).attach(self.fullFilesPath) pageStat = PageStat(testPage) self.assertEqual(pageStat.attachmentsCount, 6)
def testAttachmentsSizeSearch1(self): from statistics.pagestat import PageStat SearchPageFactory().create(self.wikiroot, "Страница 1", []) testPage = self.wikiroot["Страница 1"] Attachment(testPage).attach(self.fullFilesPath) pageStat = PageStat(testPage) self.assertAlmostEqual(pageStat.attachmentsSize, 11771, delta=300)
def setUp (self): BaseMainWndTest.setUp (self) self.path = u"../test/testwiki" removeWiki (self.path) self.wikiroot = WikiDocument.create (self.path) TextPageFactory.create (self.wikiroot, u"Текстовая страница", []) TextPageFactory.create (self.wikiroot, u"Текстовая страница 2", []) HtmlPageFactory.create (self.wikiroot, u"HTML-страница", []) HtmlPageFactory.create (self.wikiroot, u"HTML-страница 2", []) WikiPageFactory.create (self.wikiroot, u"Викистраница", []) WikiPageFactory.create (self.wikiroot, u"Викистраница 2", []) SearchPageFactory.create (self.wikiroot, u"Поисковая страница", []) SearchPageFactory.create (self.wikiroot, u"Поисковая страница 2", [])
def reset (): """ Установить словарь фабрик в первоначальное состояние. Используется для тестирования. Это не конструктор. В случае изменения списка фабрик, установленных по умолчанию, нужно изменять этот метод. """ FactorySelector._factories = {factory.getTypeString(): factory for factory in [WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory()]}
def testPageContentLength4 (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", []) 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), 5) self.assertEqual (pagesList[4][0], self.rootwiki[u"Страница 5"]) self.assertEqual (pagesList[4][1], 0)
def testTypeCreation (self): textPage = TextPageFactory.create (self.rootwiki, u"Текстовая страница", []) self.assertEqual (TextWikiPage, type(textPage)) wikiPage = WikiPageFactory.create (self.rootwiki, u"Вики-страница", []) self.assertEqual (WikiWikiPage, type(wikiPage)) htmlPage = HtmlPageFactory.create (self.rootwiki, u"HTML-страница", []) self.assertEqual (HtmlWikiPage, type(htmlPage)) searchPage = SearchPageFactory.create (self.rootwiki, u"Поисковая страница", []) self.assertEqual (SearchWikiPage, type(searchPage))
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 testMultitype_01 (self): WikiPageFactory().create (self.wikiroot, u"Викистраница", []) page = self.wikiroot[u"Викистраница"] path = os.path.join (page.path, self.styleFile) TextPageFactory().create (page, u"Текстовая страница", []) SearchPageFactory().create (page, u"Страница поиска", []) HtmlPageFactory().create (page, u"HTML-страница", []) Application.wikiroot = self.wikiroot Application.selectedPage = None 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()))
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", [])
def runTest (): SearchPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] pageStat = self.loader[self.__pluginname].getPageStat (testPage) pageStat.symbols