Example #1
0
    def testWordsHtml2(self):
        from statistics.pagestat import PageStat

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

        testPage.content = u"""Бла бла бла.
Еще одна строка111 222 333

И еще строка ... ... ;;; @#$%#$

Последняя строка

"""

        pageStat = PageStat(testPage)

        self.assertEqual(pageStat.words, 13)
Example #2
0
    def testWordsHtml1(self):
        from statistics.pagestat import PageStat

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

        testPage.content = """Бла бла бла
Еще одна строка

И еще строка

Последняя строка

"""

        pageStat = PageStat(testPage)

        self.assertEqual(pageStat.words, 11)
Example #3
0
    def testLinesHtml2(self):
        from statistics.pagestat import PageStat

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

        testPage.content = u"""Бла бла бла
Еще одна строка

И еще строка

Последняя строка

"""

        pageStat = PageStat(testPage)

        self.assertEqual(pageStat.lines, 4)
Example #4
0
    def testTypeCreation(self):
        textPage = TextPageFactory().create(self.wikiroot,
                                            "Текстовая страница", [])

        self.assertEqual(TextWikiPage, type(textPage))

        wikiPage = WikiPageFactory().create(self.wikiroot, "Вики-страница", [])

        self.assertEqual(WikiWikiPage, type(wikiPage))

        htmlPage = HtmlPageFactory().create(self.wikiroot, "HTML-страница", [])

        self.assertEqual(HtmlWikiPage, type(htmlPage))

        searchPage = SearchPageFactory().create(self.wikiroot,
                                                "Поисковая страница", [])

        self.assertEqual(SearchWikiPage, type(searchPage))
Example #5
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 #6
0
    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
Example #7
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 #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)
 def _createPage(self):
     return HtmlPageFactory().create(self.wikiroot, u"HTML-страница", [])