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>' )
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>')
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')
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'])
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'])
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">'Hello, world!'' '</span><span class="p">)</span>\n</pre></div>' )
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>' )
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')
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>')
def test_consistency(self): pages = FlatPages(Flask(__name__)) for page in pages: assert pages.get(page.path) is page
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)