1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
"""
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-2024 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).
"""
import unittest
from markdown.test_tools import TestCase
class TestUnorderedLists(TestCase):
# TODO: Move legacy tests here
def test_header_and_paragraph_no_blank_line_loose_list(self):
self.assertMarkdownRenders(
self.dedent(
"""
- ### List 1
Entry 1.1
- ### List 2
Entry 2.1
"""
),
self.dedent(
"""
<ul>
<li>
<h3>List 1</h3>
<p>Entry 1.1</p>
</li>
<li>
<h3>List 2</h3>
<p>Entry 2.1</p>
</li>
</ul>
"""
)
)
# Note: This is strange. Any other element on first line of list item would get very
# different behavior. However, as a heading can only ever be one line, this is the
# correct behavior. In fact, `markdown.pl` behaves this way with no indentation.
def test_header_and_paragraph_no_blank_line_loose_list_no_indent(self):
self.assertMarkdownRenders(
self.dedent(
"""
- ### List 1
Entry 1.1
- ### List 2
Entry 2.1
"""
),
self.dedent(
"""
<ul>
<li>
<h3>List 1</h3>
<p>Entry 1.1</p>
</li>
<li>
<h3>List 2</h3>
<p>Entry 2.1</p>
</li>
</ul>
"""
)
)
# TODO: Possibly change this behavior. While this test follows the behavior
# of `markdown.pl`, it is likely surprising to most users. In fact, actual
# behavior is to return the same results as for a loose list.
@unittest.skip('This behaves as a loose list in Python-Markdown')
def test_header_and_paragraph_no_blank_line_tight_list(self):
self.assertMarkdownRenders(
self.dedent(
"""
- ### List 1
Entry 1.1
- ### List 2
Entry 2.1
"""
),
self.dedent(
"""
<ul>
<li>### List 1
Entry 1.1</li>
<li>### List 2
Entry 2.1</li>
</ul>
"""
)
)
# TODO: Possibly change this behavior. While this test follows the behavior
# of `markdown.pl`, it is likely surprising to most users. In fact, actual
# behavior is to return the same results as for a loose list.
@unittest.skip('This behaves as a loose list in Python-Markdown')
def test_header_and_paragraph_no_blank_line_tight_list_no_indent(self):
self.assertMarkdownRenders(
self.dedent(
"""
- ### List 1
Entry 1.1
- ### List 2
Entry 2.1
"""
),
self.dedent(
"""
<ul>
<li>### List 1
Entry 1.1</li>
<li>### List 2
Entry 2.1</li>
</ul>
"""
)
)
|