示例#1
0
    def test_markdown_extensions(self):
        pages = FlatPages(Flask(__name__))

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html,
            u'<h1>Page Header</h1>\n<h2>Paragraph Header</h2>\n<p>Text</p>'
        )

        pages.app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = []
        pages.reload()
        pages._file_cache = {}

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html,
            u'<h1>Page Header</h1>\n<h2>Paragraph Header</h2>\n<p>Text</p>'
        )

        pages.app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = [
            'codehilite', 'headerid'
        ]
        pages.reload()
        pages._file_cache = {}

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html,
            '<h1 id="page-header">Page Header</h1>\n'
            '<h2 id="paragraph-header">Paragraph Header</h2>\n'
            '<p>Text</p>'
        )
示例#2
0
    def test_markdown_extensions(self):
        pages = FlatPages(Flask(__name__))

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html,
            u'<h1>Page Header</h1>\n<h2>Paragraph Header</h2>\n<p>Text</p>')

        pages.app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = []
        pages.reload()
        pages._file_cache = {}

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html,
            u'<h1>Page Header</h1>\n<h2>Paragraph Header</h2>\n<p>Text</p>')

        pages.app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = [
            'codehilite', 'headerid'
        ]
        pages.reload()
        pages._file_cache = {}

        hello = pages.get('headerid')
        self.assertEqual(
            hello.html, u'<h1 id="page-header">Page Header</h1>\n'
            u'<h2 id="paragraph-header">Paragraph Header</h2>\n'
            u'<p>Text</p>')
示例#3
0
    def test_other_html_renderer(self):
        def body_renderer(body):
            return body.upper()

        def page_renderer(body, pages, page):
            return page.body.upper()

        def pages_renderer(body, pages):
            return pages.get('hello').body.upper()

        renderers = filter(None, (
            operator.methodcaller('upper'),
            'string.upper' if not compat.IS_PY3 else None,
            body_renderer,
            page_renderer,
            pages_renderer
        ))

        for renderer in (renderers):
            pages = FlatPages(Flask(__name__))
            pages.app.config['FLATPAGES_HTML_RENDERER'] = renderer
            hello = pages.get('hello')
            self.assertEqual(hello.body, u'Hello, *世界*!\n')
            # Upper-case, markdown not interpreted
            self.assertEqual(hello.html, u'HELLO, *世界*!\n')
示例#4
0
 def test_yaml_meta(self):
     pages = FlatPages(Flask(__name__))
     foo = pages.get('foo')
     self.assertEqual(foo.meta, {
         'title': 'Foo > bar',
         'created': datetime.date(2010, 12, 11),
         'versions': [3.14, 42]
     })
     self.assertEqual(foo['title'], 'Foo > bar')
     self.assertEqual(foo['created'], datetime.date(2010, 12, 11))
     self.assertEqual(foo['versions'], [3.14, 42])
     self.assertRaises(KeyError, lambda: foo['nonexistent'])
示例#5
0
 def test_yaml_meta(self):
     pages = FlatPages(Flask(__name__))
     foo = pages.get('foo')
     self.assertEqual(
         foo.meta, {
             'title': 'Foo > bar',
             'created': datetime.date(2010, 12, 11),
             'versions': [3.14, 42]
         })
     self.assertEqual(foo['title'], 'Foo > bar')
     self.assertEqual(foo['created'], datetime.date(2010, 12, 11))
     self.assertEqual(foo['versions'], [3.14, 42])
     self.assertRaises(KeyError, lambda: foo['nonexistent'])
示例#6
0
    def test_markdown_extensions_codehilite_linenums_disabled(self):
        app = Flask(__name__)
        app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = [
            'codehilite(linenums=False)'
        ]
        pages = FlatPages(app)

        codehilite = pages.get('codehilite')
        self.assertEqual(
            codehilite.html,
            '<div class="codehilite"><pre><span class="k">print</span>'
            '<span class="p">(</span><span class="s">&#39;Hello, world!&#39;'
            '</span><span class="p">)</span>\n</pre></div>'
        )
示例#7
0
    def test_markdown_extensions_toc(self):
        app = Flask(__name__)
        app.config['FLATPAGES_MARKDOWN_EXTENSIONS'] = ['toc']
        pages = FlatPages(app)

        toc = pages.get('toc')
        self.assertEqual(
            toc.html,
            '<div class="toc">\n<ul>\n<li><a href="#page-header">Page '
            'Header</a><ul>\n<li><a href="#paragraph-header">Paragraph '
            'Header</a></li>\n</ul>\n</li>\n</ul>\n</div>\n'
            '<h1 id="page-header">Page Header</h1>\n'
            '<h2 id="paragraph-header">Paragraph Header</h2>\n'
            '<p>Text</p>'
        )
示例#8
0
    def test_other_html_renderer(self):
        def body_renderer(body):
            return body.upper()

        def page_renderer(body, pages, page):
            return page.body.upper()

        def pages_renderer(body, pages):
            return pages.get('hello').body.upper()

        renderers = filter(None,
                           (operator.methodcaller('upper'),
                            'string.upper' if not compat.IS_PY3 else None,
                            body_renderer, page_renderer, pages_renderer))

        for renderer in (renderers):
            pages = FlatPages(Flask(__name__))
            pages.app.config['FLATPAGES_HTML_RENDERER'] = renderer
            hello = pages.get('hello')
            self.assertEqual(hello.body, u'Hello, *世界*!\n')
            # Upper-case, markdown not interpreted
            self.assertEqual(hello.html, u'HELLO, *世界*!\n')
示例#9
0
 def test_markdown(self):
     pages = FlatPages(Flask(__name__))
     foo = pages.get('foo')
     self.assertEqual(foo.body, 'Foo *bar*\n')
     self.assertEqual(foo.html, '<p>Foo <em>bar</em></p>')
示例#10
0
 def test_consistency(self):
     pages = FlatPages(Flask(__name__))
     for page in pages:
         assert pages.get(page.path) is page
示例#11
0
 def test_get(self):
     pages = FlatPages(Flask(__name__))
     self.assertEqual(pages.get('foo/bar').path, 'foo/bar')
     self.assertEqual(pages.get('nonexistent'), None)
     self.assertEqual(pages.get('nonexistent', 42), 42)
示例#12
0
 def test_markdown(self):
     pages = FlatPages(Flask(__name__))
     foo = pages.get('foo')
     self.assertEqual(foo.body, 'Foo *bar*\n')
     self.assertEqual(foo.html, '<p>Foo <em>bar</em></p>')
示例#13
0
 def test_consistency(self):
     pages = FlatPages(Flask(__name__))
     for page in pages:
         assert pages.get(page.path) is page
示例#14
0
 def test_get(self):
     pages = FlatPages(Flask(__name__))
     self.assertEqual(pages.get('foo/bar').path, 'foo/bar')
     self.assertEqual(pages.get('nonexistent'), None)
     self.assertEqual(pages.get('nonexistent', 42), 42)