# -*- coding: utf-8 -*- """ Python Markdown A Python implementation of John Gruber's Markdown. Documentation: https://python-markdown.github.io/ GitHub: https://github.com/Python-Markdown/markdown/ PyPI: https://pypi.org/project/Markdown/ Started by Manfred Stienstra (http://www.dwerg.net/). Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org). Currently maintained by Waylan Limberg (https://github.com/waylan), Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser). Copyright 2007-2018 The Python Markdown Project (v. 1.7 and later) Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b) Copyright 2004 Manfred Stienstra (the original version) License: BSD (see LICENSE.md for details). """ from markdown.test_tools import TestCase class TestHTMLBlocks(TestCase): def test_raw_paragraph(self): self.assertMarkdownRenders( '
A raw paragraph.
', 'A raw paragraph.
' ) def test_raw_skip_inline_markdown(self): self.assertMarkdownRenders( 'A *raw* paragraph.
', 'A *raw* paragraph.
' ) def test_raw_indent_one_space(self): self.assertMarkdownRenders( 'A *raw* paragraph.
', # TODO: reevaluate. This matches strict rules and reference # implementation version 1.0.1 but not 1.0.2b8. 'A raw paragraph.
' ) def test_raw_indent_four_spaces(self): self.assertMarkdownRenders( 'code block
', self.dedent( """<p>code block</p>
"""
)
)
def test_raw_span(self):
self.assertMarkdownRenders(
'*inline*',
'inline
' ) def test_code_span(self): self.assertMarkdownRenders( '`code span`', '<em>code span</em>
', '
' ) def test_raw_empty_newline(self): self.assertMarkdownRenders( '
\n
', '\n
' ) def test_raw_empty_blank_line(self): self.assertMarkdownRenders( '\n\n
', '\n\n
' ) def test_multiline_raw(self): self.assertMarkdownRenders( self.dedent( """A raw paragraph with multiple lines.
""" ), self.dedent( """A raw paragraph with multiple lines.
""" ) ) def test_blank_lines_in_raw(self): self.assertMarkdownRenders( self.dedent( """A raw paragraph... with many blank lines.
""" ), self.dedent( """A raw paragraph... with many blank lines.
""" ) ) def test_raw_surrounded_by_Markdown(self): self.assertMarkdownRenders( self.dedent( """ Some *Markdown* text.*Raw* HTML.
More *Markdown* text. """ ), self.dedent( """Some Markdown text.
*Raw* HTML.
More Markdown text.
""" ) ) def test_raw_without_blank_lines(self): self.assertMarkdownRenders( self.dedent( """ Some *Markdown* text.*Raw* HTML.
More *Markdown* text. """ ), # The raw gets treated as inline HTML. This follows the rules and this lib's # previous behavior, but not the reference implementation. TODO: Reevaluate. self.dedent( """Some Markdown text.
Raw HTML.
More Markdown text. """ ) # The reference implementation does this instead: # self.dedent( # """ #Some Markdown text.
#*Raw* HTML.
#More Markdown text.
# """ # ) ) def test_raw_with_markdown_blocks(self): self.assertMarkdownRenders( self.dedent( """A raw paragraph.
A second raw paragraph.
""" ), self.dedent( """A raw paragraph.
A second raw paragraph.
""" ) ) def test_adjacent_raw_blocks_with_blank_lines(self): self.assertMarkdownRenders( self.dedent( """A raw paragraph.
A second raw paragraph.
""" ), self.dedent( """A raw paragraph.
A second raw paragraph.
""" ) ) def test_nested_raw_block(self): self.assertMarkdownRenders( self.dedent( """A raw paragraph.
A raw paragraph.
A raw paragraph.
A raw paragraph.
A raw paragraph.
A second raw paragraph.
A raw paragraph.
A second raw paragraph.
A raw paragraph.
A second raw paragraph.
A raw paragraph.
A second raw paragraph.
*text*
*text*
*text*
*text*
*text*', '
*text*' ) # TODO: fix this. See comment on previous test method. def test_raw_multiple_p_no_end_tag(self): self.assertMarkdownRenders( self.dedent( """
*text*'
more *text* """ ), self.dedent( """
*text*'
more *text* """ ) ) # TODO: fix this. See comment on previous test method. def test_raw_p_no_end_tag_followed_by_blank_line(self): self.assertMarkdownRenders( self.dedent( """
*raw text*' Still part of *raw* text. """ ), self.dedent( """
*raw text*' Still part of *raw* text. """ ) ) def test_raw_nested_p_no_end_tag(self): self.assertMarkdownRenders( '
*text*
*text*
<
' ) def test_raw_open_bracket_followed_by_space(self): self.assertMarkdownRenders( '< foo', '< foo
' ) def test_raw_missing_close_bracket(self): self.assertMarkdownRenders( 'text
text