コード例 #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())
コード例 #2
0
ファイル: controller.py プロジェクト: xillmera/outwiker
    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()
コード例 #3
0
ファイル: wikipagecontroller.py プロジェクト: Jenyay/outwiker
    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()
コード例 #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())
コード例 #5
0
ファイル: controller.py プロジェクト: xillmera/outwiker
    def __onPageUpdateNeeded(self, page, params):
        if page.readonly:
            return

        if not params.allowCache:
            HtmlCache(page, self._application).resetHash()
        self._updatePage(page)
コード例 #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()
コード例 #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)
コード例 #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())
コード例 #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())
コード例 #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())
コード例 #11
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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()
コード例 #12
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #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())
コード例 #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())
コード例 #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())
コード例 #16
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #17
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #18
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #19
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #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())
コード例 #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())
コード例 #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())
コード例 #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())
コード例 #24
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #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())
コード例 #26
0
ファイル: test_wikihtmlcache.py プロジェクト: Jenyay/outwiker
    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())
コード例 #27
0
 def _getCacher(self, page, application):
     return HtmlCache(page, application)