unplugged-system/external/markdown/tests/test_syntax/blocks/test_paragraphs.py

230 lines
7.2 KiB
Python

"""
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 TestParagraphBlocks(TestCase):
def test_simple_paragraph(self):
self.assertMarkdownRenders(
'A simple paragraph.',
'<p>A simple paragraph.</p>'
)
def test_blank_line_before_paragraph(self):
self.assertMarkdownRenders(
'\nA paragraph preceded by a blank line.',
'<p>A paragraph preceded by a blank line.</p>'
)
def test_multiline_paragraph(self):
self.assertMarkdownRenders(
self.dedent(
"""
This is a paragraph
on multiple lines
with hard returns.
"""
),
self.dedent(
"""
<p>This is a paragraph
on multiple lines
with hard returns.</p>
"""
)
)
def test_paragraph_long_line(self):
self.assertMarkdownRenders(
'A very long long long long long long long long long long long long long long long long long long long '
'long long long long long long long long long long long long long paragraph on 1 line.',
'<p>A very long long long long long long long long long long long long long long long long long long '
'long long long long long long long long long long long long long long paragraph on 1 line.</p>'
)
def test_2_paragraphs_long_line(self):
self.assertMarkdownRenders(
'A very long long long long long long long long long long long long long long long long long long long '
'long long long long long long long long long long long long long paragraph on 1 line.\n\n'
'A new long long long long long long long long long long long long long long long '
'long paragraph on 1 line.',
'<p>A very long long long long long long long long long long long long long long long long long long '
'long long long long long long long long long long long long long long paragraph on 1 line.</p>\n'
'<p>A new long long long long long long long long long long long long long long long '
'long paragraph on 1 line.</p>'
)
def test_consecutive_paragraphs(self):
self.assertMarkdownRenders(
self.dedent(
"""
Paragraph 1.
Paragraph 2.
"""
),
self.dedent(
"""
<p>Paragraph 1.</p>
<p>Paragraph 2.</p>
"""
)
)
def test_consecutive_paragraphs_tab(self):
self.assertMarkdownRenders(
self.dedent(
"""
Paragraph followed by a line with a tab only.
\t
Paragraph after a line with a tab only.
"""
),
self.dedent(
"""
<p>Paragraph followed by a line with a tab only.</p>
<p>Paragraph after a line with a tab only.</p>
"""
)
)
def test_consecutive_paragraphs_space(self):
self.assertMarkdownRenders(
self.dedent(
"""
Paragraph followed by a line with a space only.
Paragraph after a line with a space only.
"""
),
self.dedent(
"""
<p>Paragraph followed by a line with a space only.</p>
<p>Paragraph after a line with a space only.</p>
"""
)
)
def test_consecutive_multiline_paragraphs(self):
self.assertMarkdownRenders(
self.dedent(
"""
Paragraph 1, line 1.
Paragraph 1, line 2.
Paragraph 2, line 1.
Paragraph 2, line 2.
"""
),
self.dedent(
"""
<p>Paragraph 1, line 1.
Paragraph 1, line 2.</p>
<p>Paragraph 2, line 1.
Paragraph 2, line 2.</p>
"""
)
)
def test_paragraph_leading_space(self):
self.assertMarkdownRenders(
' A paragraph with 1 leading space.',
'<p>A paragraph with 1 leading space.</p>'
)
def test_paragraph_2_leading_spaces(self):
self.assertMarkdownRenders(
' A paragraph with 2 leading spaces.',
'<p>A paragraph with 2 leading spaces.</p>'
)
def test_paragraph_3_leading_spaces(self):
self.assertMarkdownRenders(
' A paragraph with 3 leading spaces.',
'<p>A paragraph with 3 leading spaces.</p>'
)
def test_paragraph_trailing_leading_space(self):
self.assertMarkdownRenders(
' A paragraph with 1 trailing and 1 leading space. ',
'<p>A paragraph with 1 trailing and 1 leading space. </p>'
)
def test_paragraph_trailing_tab(self):
self.assertMarkdownRenders(
'A paragraph with 1 trailing tab.\t',
'<p>A paragraph with 1 trailing tab. </p>'
)
def test_paragraphs_CR(self):
self.assertMarkdownRenders(
'Paragraph 1, line 1.\rParagraph 1, line 2.\r\rParagraph 2, line 1.\rParagraph 2, line 2.\r',
self.dedent(
"""
<p>Paragraph 1, line 1.
Paragraph 1, line 2.</p>
<p>Paragraph 2, line 1.
Paragraph 2, line 2.</p>
"""
)
)
def test_paragraphs_LF(self):
self.assertMarkdownRenders(
'Paragraph 1, line 1.\nParagraph 1, line 2.\n\nParagraph 2, line 1.\nParagraph 2, line 2.\n',
self.dedent(
"""
<p>Paragraph 1, line 1.
Paragraph 1, line 2.</p>
<p>Paragraph 2, line 1.
Paragraph 2, line 2.</p>
"""
)
)
def test_paragraphs_CR_LF(self):
self.assertMarkdownRenders(
'Paragraph 1, line 1.\r\nParagraph 1, line 2.\r\n\r\nParagraph 2, line 1.\r\nParagraph 2, line 2.\r\n',
self.dedent(
"""
<p>Paragraph 1, line 1.
Paragraph 1, line 2.</p>
<p>Paragraph 2, line 1.
Paragraph 2, line 2.</p>
"""
)
)