Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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", [])
Example #4
0
    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", [])
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
        def runTest():
            from statistics.pagestat import PageStat

            SearchPageFactory().create(self.wikiroot, "Страница 1", [])
            testPage = self.wikiroot["Страница 1"]

            pageStat = PageStat(testPage)
            pageStat.symbols
Example #8
0
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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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", [])
Example #12
0
 def reset ():
     """
     Установить словарь фабрик в первоначальное состояние. Используется для тестирования.
     Это не конструктор. В случае изменения списка фабрик, установленных по умолчанию, нужно изменять этот метод.
     """
     FactorySelector._factories = {factory.getTypeString(): factory
                                   for factory
                                   in [WikiPageFactory(),
                                       HtmlPageFactory(),
                                       TextPageFactory(),
                                       SearchPageFactory()]}
Example #13
0
    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)
Example #14
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))
Example #15
0
    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))
Example #16
0
    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()))
Example #17
0
 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", [])
Example #18
0
        def runTest ():
            SearchPageFactory.create (self.rootwiki, u"Страница 1", [])
            testPage = self.rootwiki[u"Страница 1"]

            pageStat = self.loader[self.__pluginname].getPageStat (testPage)
            pageStat.symbols