예제 #1
0
    def test_called_with_preview_content_and_article_dont_have_current_revision(
            self):

        article = Article.objects.create()

        content = '''This is a normal paragraph:

        This is a code block.

        <a>This should be escaped</a>
        '''

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)

        assertCountEqual(self, self.keys, output)

        self.assertEqual(output['article'], article)

        self.assertMultiLineEqual(output['content'], '')
        self.assertEqual(output['preview'], True)

        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        self.render({'article': article, 'pc': content})
예제 #2
0
    def test_called_with_preview_content_and_article_dont_have_current_revision(
            self):

        article = Article.objects.create()

        content = '''This is a normal paragraph:

        This is a code block.

        <a>This should be escaped</a>
        '''

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)

        assertCountEqual(self, self.keys, output)

        self.assertEqual(output['article'], article)

        self.assertMultiLineEqual(output['content'], '')
        self.assertEqual(output['preview'], True)

        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        self.render({'article': article, 'pc': content})
예제 #3
0
    def test_called_with_preview_content_and_article_have_current_revision(
            self):

        article = Article.objects.create()
        ArticleRevision.objects.create(article=article,
                                       title="Test title",
                                       content="Some beauty test text")

        content = ("""This is a normal paragraph\n"""
                   """\n"""
                   """Headline\n"""
                   """========\n""")

        expected_markdown = ("""<p>This is a normal paragraph</p>\n"""
                             """<h1 id="wiki-toc-headline">Headline</h1>""")

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)
        assertCountEqual(self, self.keys, output)
        self.assertEqual(output['article'], article)
        self.assertMultiLineEqual(output['content'], expected_markdown)
        self.assertEqual(output['preview'], True)
        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        output = self.render({'article': article, 'pc': content})
        self.assertIn(expected_markdown, output)
예제 #4
0
    def test_called_with_preview_content_and_article_dont_have_current_revision(
            self):

        article = Article.objects.create()

        content = ("""This is a normal paragraph\n"""
                   """\n"""
                   """Headline\n"""
                   """========\n""")

        # monkey patch
        from wiki.core.plugins import registry

        registry._cache = {"spam": "eggs"}

        output = wiki_render({}, article, preview_content=content)

        self.assertCountEqual(self.keys, output)

        self.assertEqual(output["article"], article)

        self.assertMultiLineEqual(output["content"], "")
        self.assertIs(output["preview"], True)

        self.assertEqual(output["plugins"], {"spam": "eggs"})
        self.assertEqual(output["STATIC_URL"], django_settings.STATIC_URL)
        self.assertEqual(output["CACHE_TIMEOUT"], settings.CACHE_TIMEOUT)

        self.render({"article": article, "pc": content})
예제 #5
0
    def test_called_with_preview_content_and_article_have_current_revision(
            self):

        article = Article.objects.create()
        ArticleRevision.objects.create(article=article,
                                       title="Test title",
                                       content="Some beauty test text")

        content = ("""This is a normal paragraph\n"""
                   """\n"""
                   """Headline\n"""
                   """========\n""")

        expected = ("""(?s).*<p>This is a normal paragraph</p>\n"""
                    """<h1 id="wiki-toc-headline">Headline"""
                    """.*</h1>.*""")

        # monkey patch
        from wiki.core.plugins import registry

        registry._cache = {"spam": "eggs"}

        output = wiki_render({}, article, preview_content=content)
        self.assertCountEqual(self.keys, output)
        self.assertEqual(output["article"], article)
        self.assertRegexpMatches(output["content"], expected)
        self.assertIs(output["preview"], True)
        self.assertEqual(output["plugins"], {"spam": "eggs"})
        self.assertEqual(output["STATIC_URL"], django_settings.STATIC_URL)
        self.assertEqual(output["CACHE_TIMEOUT"], settings.CACHE_TIMEOUT)

        output = self.render({"article": article, "pc": content})
        self.assertRegexpMatches(output, expected)
예제 #6
0
    def test_called_with_preview_content_and_article_have_current_revision(
            self):

        article = Article.objects.create()
        ArticleRevision.objects.create(
            article=article,
            title="Test title",
            content="Some beauty test text"
        )

        content = '''This is a normal paragraph:

        This is a code block.

        <a>This should be escaped</a>
        '''

        example = (
            """<p>This is a normal paragraph:</p>\n"""
            """<pre class="codehilite"><code>    This is a code block.\n"""
            """\n"""
            """    &lt;a&gt;This should be escaped&lt;/a&gt;</code></pre>"""
        )
        example_with_pygments = (
            """<p>This is a normal paragraph:</p>\n"""
            """<div class="codehilite"><pre>    This is a code block.\n"""
            """\n"""
            """    <span class="nt">&lt;a&gt;</span>This should be escaped<span class="nt">&lt;/a&gt;</span>\n"""
            """</pre></div>"""
        )

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)

        assertCountEqual(self, self.keys, output)
        self.assertEqual(output['article'], article)
        try:
            self.assertMultiLineEqual(output['content'], example)
        except AssertionError:
            self.assertMultiLineEqual(output['content'], example_with_pygments)
        self.assertEqual(output['preview'], True)
        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        output = self.render({'article': article, 'pc': content})
        try:
            self.assertIn(example, output)
        except AssertionError:
            self.assertIn(example_with_pygments, output)
예제 #7
0
    def test_called_with_preview_content_and_article_have_current_revision(
            self):

        article = Article.objects.create()
        ArticleRevision.objects.create(article=article,
                                       title="Test title",
                                       content="Some beauty test text")

        content = '''This is a normal paragraph:

        This is a code block.

        <a>This should be escaped</a>
        '''

        example = (
            """<p>This is a normal paragraph:</p>\n"""
            """<div class="codehilite-wrap"><pre class="codehilite"><code>    This is a code block.\n"""
            """\n"""
            """    &lt;a&gt;This should be escaped&lt;/a&gt;</code></pre>\n"""
            """</div>""")
        example_with_pygments = (
            """<p>This is a normal paragraph:</p>\n"""
            """<div class="codehilite-wrap"><div class="codehilite"><pre><span></span>    This is a code block.\n"""
            """\n"""
            """    <span class="nt">&lt;a&gt;</span>This should be escaped<span class="nt">&lt;/a&gt;</span>\n"""
            """</pre></div>\n"""
            """</div>""")

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)

        assertCountEqual(self, self.keys, output)
        self.assertEqual(output['article'], article)
        try:
            self.assertMultiLineEqual(output['content'], example)
        except (AssertionError, self.failureException):
            print(output['content'])
            self.assertMultiLineEqual(output['content'], example_with_pygments)
        self.assertEqual(output['preview'], True)
        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        output = self.render({'article': article, 'pc': content})
        try:
            self.assertIn(example, output)
        except self.failureException:
            self.assertIn(example_with_pygments, output)
예제 #8
0
    def test_if_preview_content_is_none(self):

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'ham': 'spam'}

        article = Article.objects.create()

        output = wiki_render({}, article)

        assertCountEqual(self, self.keys, output)

        self.assertEqual(output['article'], article)
        self.assertEqual(output['content'], None)
        self.assertEqual(output['preview'], False)

        self.assertEqual(output['plugins'], {'ham': 'spam'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        # Additional check
        self.render({'article': article, 'pc': None})
예제 #9
0
    def test_if_preview_content_is_none(self):

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'ham': 'spam'}

        article = Article.objects.create()

        output = wiki_render({}, article)

        assertCountEqual(self, self.keys, output)

        self.assertEqual(output['article'], article)
        self.assertEqual(output['content'], None)
        self.assertEqual(output['preview'], False)

        self.assertEqual(output['plugins'], {'ham': 'spam'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        # Additional check
        self.render({'article': article, 'pc': None})
예제 #10
0
    def test_if_preview_content_is_none(self):

        # monkey patch
        from wiki.core.plugins import registry

        registry._cache = {"ham": "spam"}

        article = Article.objects.create()

        output = wiki_render({}, article)

        self.assertCountEqual(self.keys, output)

        self.assertEqual(output["article"], article)
        self.assertIsNone(output["content"])
        self.assertIs(output["preview"], False)

        self.assertEqual(output["plugins"], {"ham": "spam"})
        self.assertEqual(output["STATIC_URL"], django_settings.STATIC_URL)
        self.assertEqual(output["CACHE_TIMEOUT"], settings.CACHE_TIMEOUT)

        # Additional check
        self.render({"article": article, "pc": None})
예제 #11
0
    def test_called_with_preview_content_and_article_have_current_revision(
            self):

        article = Article.objects.create()
        ArticleRevision.objects.create(
            article=article,
            title="Test title",
            content="Some beauty test text"
        )

        content = (
            """This is a normal paragraph\n"""
            """\n"""
            """Headline\n"""
            """========\n"""
        )

        expected_markdown = (
            """<p>This is a normal paragraph</p>\n"""
            """<h1 id="wiki-toc-headline">Headline</h1>"""
        )

        # monkey patch
        from wiki.core.plugins import registry
        registry._cache = {'spam': 'eggs'}

        output = wiki_render({}, article, preview_content=content)
        assertCountEqual(self, self.keys, output)
        self.assertEqual(output['article'], article)
        self.assertMultiLineEqual(output['content'], expected_markdown)
        self.assertEqual(output['preview'], True)
        self.assertEqual(output['plugins'], {'spam': 'eggs'})
        self.assertEqual(output['STATIC_URL'], django_settings.STATIC_URL)
        self.assertEqual(output['CACHE_TIMEOUT'], settings.CACHE_TIMEOUT)

        output = self.render({'article': article, 'pc': content})
        self.assertIn(expected_markdown, output)