Exemplo n.º 1
0
    def testResetHash2 (self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache (self.testPage, Application)

        self.assertFalse (cache.canReadFromCache())
        cache.resetHash()

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue (cache.canReadFromCache())

        cache.resetHash()
        self.assertFalse (cache.canReadFromCache())
Exemplo n.º 2
0
    def _updatePage(self, page):
        path = page.getHtmlPath()
        cache = HtmlCache(page, self._application)

        # Проверим, можно ли прочитать уже готовый HTML
        if cache.canReadFromCache() and os.path.exists(path):
            return

        style = Style()
        stylepath = style.getPageStyle(page)
        generator = MarkdownHtmlGenerator(page)

        html = generator.makeHtml(stylepath)
        writeTextFile(path, html)
        cache.saveHash()
Exemplo n.º 3
0
    def _updatePage(self, page):
        path = page.getHtmlPath()
        cache = HtmlCache(page, self._application)

        # Проверим, можно ли прочитать уже готовый HTML
        if cache.canReadFromCache() and os.path.exists(path):
            return

        style = Style()
        stylepath = style.getPageStyle(page)
        generator = HtmlGenerator(page)

        html = generator.makeHtml(stylepath)
        writeTextFile(path, html)
        cache.saveHash()
Exemplo n.º 4
0
    def testResetHash1(self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        cache.resetHash()
        self.assertFalse(cache.canReadFromCache())
Exemplo n.º 5
0
    def __onPageUpdateNeeded(self, page, params):
        if page.readonly:
            return

        if not params.allowCache:
            HtmlCache(page, self._application).resetHash()
        self._updatePage(page)
Exemplo n.º 6
0
    def testCacheLoadPlugins2(self):
        """
        Проверка на то, что при изменении списка установленных плагинов не работает кэширование
        """
        Application.plugins.clear()
        Application.plugins.load([u"../plugins/testempty1"])
        Application.plugins.load([u"../plugins/testempty2"])

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        Application.plugins.clear()

        self.assertFalse(cache.canReadFromCache())

        # Перезагрузим плагины в другом порядке
        Application.plugins.load([u"../plugins/testempty2"])
        Application.plugins.load([u"../plugins/testempty1"])

        self.assertEqual(len(Application.plugins), 2)
        self.assertTrue(cache.canReadFromCache())
        Application.plugins.clear()
Exemplo n.º 7
0
    def __onPageUpdateNeeded(self, page, params):
        if (page is None
                or page.getTypeString() != WikiWikiPage.getTypeString()
                or page.readonly):
            return

        if not params.allowCache:
            HtmlCache(page, self._application).resetHash()
        self._updatePage(page)
Exemplo n.º 8
0
    def testCacheSubpages(self):
        """
        Проверка кэширования при добавлении новых подстраниц
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Добавляем новую подстраницу
        WikiPageFactory().create(self.testPage, u"Подстраница 1", [])
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 9
0
    def testConfigFontNameCache(self):
        """
        Тест на то, что на кэширование влияет изменение размера превьюшки по умолчанию
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        Application.config.set(HtmlRenderConfig.HTML_SECTION,
                               HtmlRenderConfig.FONT_FACE_NAME_PARAM,
                               u"Бла-бла-бла")

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 10
0
    def testCacheLoadPlugins1(self):
        """
        Проверка на то, что при изменении списка установленных плагинов не работает кэширование
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        # Загрузили плагин. Кэш не должен сработать
        Application.plugins.load([u"../plugins/testempty1"])
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Загрузили еще один плагин
        Application.plugins.load([u"../plugins/testempty2"])
        self.assertFalse(cache.canReadFromCache())
Exemplo n.º 11
0
    def testCacheLoadPlugins2(self):
        """
        Проверка на то, что при изменении списка установленных плагинов не работает кэширование
        """
        self.application.plugins.clear()
        self.application.plugins.load(["../test/plugins/testempty1"])
        self.application.plugins.load(["../test/plugins/testempty2"])

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.application.plugins.clear()

        self.assertFalse(cache.canReadFromCache())

        # Перезагрузим плагины в другом порядке
        self.application.plugins.load(["../test/plugins/testempty2"])
        self.application.plugins.load(["../test/plugins/testempty1"])

        self.assertEqual(len(self.application.plugins), 2)
        self.assertTrue(cache.canReadFromCache())
        self.application.plugins.clear()
Exemplo n.º 12
0
    def testCacheSubpages(self):
        """
        Проверка кэширования при добавлении новых подстраниц
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Добавляем новую подстраницу
        WikiPageFactory().create(self.testPage, "Подстраница 1", [])
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 13
0
    def testConfigFontNameCache (self):
        """
        Тест на то, что на кэширование влияет изменение размера превьюшки по умолчанию
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache (self.testPage, Application)
        self.assertFalse (cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue (cache.canReadFromCache())

        Application.config.set (HtmlRenderConfig.HTML_SECTION,
                                HtmlRenderConfig.FONT_FACE_NAME_PARAM,
                                u"Бла-бла-бла")

        self.assertFalse (cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue (cache.canReadFromCache())
Exemplo n.º 14
0
    def testCacheLoadPlugins1 (self):
        """
        Проверка на то, что при изменении списка установленных плагинов не работает кэширование
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache (self.testPage, Application)
        self.assertFalse (cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue (cache.canReadFromCache())

        # Загрузили плагин. Кэш не должен сработать
        Application.plugins.load ([u"../test/plugins/testempty1"])
        self.assertFalse (cache.canReadFromCache())

        cache.saveHash()

        # Загрузили еще один плагин
        Application.plugins.load ([u"../test/plugins/testempty2"])
        self.assertFalse (cache.canReadFromCache())
Exemplo n.º 15
0
    def testCache1(self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        self.testPage.content = u"бла-бла-бла"

        # Изменили содержимое страницы, опять нельзя кешировать
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Добавим файл
        attach = Attachment(self.testPage)
        attach.attach([os.path.join(self.filesPath, u"add.png")])

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 16
0
    def testCacheStyle(self):
        """
        Проверка на то, что изменение стиля страницы сбрасывает кэш
        """
        style = Style()

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        exampleStyleDir = "../test/styles/example_jblog/example_jblog"
        exampleStyleDir2 = "../test/styles/example_jnet/example_jnet"

        # Изменим стиль страницы
        style.setPageStyle(self.testPage, exampleStyleDir)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        # Еще раз изменим стиль
        style.setPageStyle(self.testPage, exampleStyleDir2)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        # Установим стиль по умолчанию
        style.setPageStyleDefault(self.testPage)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 17
0
    def testCacheSubdir(self):
        attach = Attachment(self.testPage)

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не
        # изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        # Добавим файл в dir
        with open(os.path.join(attach.getAttachPath(), "dir", "temp.tmp"), "w") as fp:
            fp.write("bla-bla-bla")

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Добавим еще одну вложенную директорию
        subdir = os.path.join(attach.getAttachPath(), "dir", "subdir_2")
        os.mkdir(subdir)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Добавим файл в dir/subdir_2
        with open(os.path.join(subdir, "temp2.tmp"), "w") as fp:
            fp.write("bla-bla-bla")

        self.assertFalse(cache.canReadFromCache())
Exemplo n.º 18
0
    def testCacheEmpty(self):
        emptycontent = EmptyContent(self.application.config)
        self.testPage.content = ""

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        # Страница пустая, изменился шаблон для путой записи
        emptycontent.content = "1111"
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Изменилось содержимое страницы
        self.testPage.content = "Бла-бла-бла"
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
        cache.saveHash()

        # Изменился шаблон страницы, но страница уже не пустая
        emptycontent.content = "2222"
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 19
0
    def testCacheRename(self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не
        # изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        self.testPage.content = "бла-бла-бла"

        # Изменили содержимое страницы, опять нельзя кешировать
        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Изменили заголовок
        self.testPage.title = "Новый заголовок"

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 20
0
    def testCacheRename(self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        self.testPage.content = u"бла-бла-бла"

        # Изменили содержимое страницы, опять нельзя кешировать
        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Изменили заголовок
        self.testPage.title = u"Новый заголовок"

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 21
0
    def testCacheEmpty(self):
        emptycontent = EmptyContent(Application.config)
        self.testPage.content = u""

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        # Страница пустая, изменился шаблон для путой записи
        emptycontent.content = u"1111"
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Изменилось содержимое страницы
        self.testPage.content = u"Бла-бла-бла"
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
        cache.saveHash()

        # Изменился шаблон страницы, но страница уже не пустая
        emptycontent.content = u"2222"
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 22
0
    def testCacheSubdir(self):
        attach = Attachment(self.testPage)

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        # Добавим файл в dir
        with open(os.path.join(attach.getAttachPath(), "dir", "temp.tmp"),
                  "w") as fp:
            fp.write("bla-bla-bla")

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Добавим еще одну вложенную директорию
        subdir = os.path.join(attach.getAttachPath(), "dir", "subdir_2")
        os.mkdir(subdir)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        # Добавим файл в dir/subdir_2
        with open(os.path.join(subdir, "temp2.tmp"), "w") as fp:
            fp.write("bla-bla-bla")

        self.assertFalse(cache.canReadFromCache())
Exemplo n.º 23
0
    def testCacheStyle(self):
        """
        Проверка на то, что изменение стиля страницы сбрасывает кэш
        """
        style = Style()

        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        exampleStyleDir = u"../test/styles/example_jblog/example_jblog"
        exampleStyleDir2 = u"../test/styles/example_jnet/example_jnet"

        # Изменим стиль страницы
        style.setPageStyle(self.testPage, exampleStyleDir)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        # Еще раз изменим стиль
        style.setPageStyle(self.testPage, exampleStyleDir2)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        # Установим стиль по умолчанию
        style.setPageStyleDefault(self.testPage)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 24
0
    def testConfigThumbSizeCache(self):
        """
        Тест на то, что на кэширование влияет изменение размера превьюшки по умолчанию
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не
        # изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        self.application.config.set(
            WikiConfig.WIKI_SECTION,
            WikiConfig.THUMB_SIZE_PARAM,
            WikiConfig.THUMB_SIZE_DEFAULT + 100)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        self.application.config.set(
            WikiConfig.WIKI_SECTION,
            WikiConfig.THUMB_SIZE_PARAM,
            "Бла-бла-бла")
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.application.config.set(
            WikiConfig.WIKI_SECTION,
            WikiConfig.THUMB_SIZE_PARAM,
            WikiConfig.THUMB_SIZE_DEFAULT)
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 25
0
    def testConfigThumbSizeCache(self):
        """
        Тест на то, что на кэширование влияет изменение размера превьюшки по умолчанию
        """
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, Application)
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        # После того, как один раз сгенерили страницу, если ничего не изменилось, можно кешировать
        self.assertTrue(cache.canReadFromCache())

        Application.config.set(WikiConfig.WIKI_SECTION,
                               WikiConfig.THUMB_SIZE_PARAM,
                               WikiConfig.THUMB_SIZE_DEFAULT + 100)

        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        Application.config.set(WikiConfig.WIKI_SECTION,
                               WikiConfig.THUMB_SIZE_PARAM, u"Бла-бла-бла")
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()
        Application.config.set(WikiConfig.WIKI_SECTION,
                               WikiConfig.THUMB_SIZE_PARAM,
                               WikiConfig.THUMB_SIZE_DEFAULT)
        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 26
0
    def testCache1(self):
        # Только создали страницу, кешировать нельзя
        cache = HtmlCache(self.testPage, self.application)
        self.assertFalse(cache.canReadFromCache())

        # После того, как один раз сгенерили страницу, если ничего не
        # изменилось, можно кешировать
        cache.saveHash()
        self.assertTrue(cache.canReadFromCache())

        self.testPage.content = "бла-бла-бла"

        # Изменили содержимое страницы, опять нельзя кешировать
        self.assertFalse(cache.canReadFromCache())

        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())

        # Добавим файл
        attach = Attachment(self.testPage)
        attach.attach([os.path.join(self.filesPath, "add.png")])

        self.assertFalse(cache.canReadFromCache())
        cache.saveHash()

        self.assertTrue(cache.canReadFromCache())
Exemplo n.º 27
0
 def _getCacher(self, page, application):
     return HtmlCache(page, application)