aboutsummaryrefslogtreecommitdiff
path: root/tests/test_syntax/inline/test_emphasis.py
blob: 1e7fafa51c1aaf475013a4dfd8f2247c9c220a9b (plain)
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
"""
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-2019 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 TestNotEmphasis(TestCase):

    def test_standalone_asterisk(self):
        self.assertMarkdownRenders(
            '*',
            '<p>*</p>'
        )

    def test_standalone_understore(self):
        self.assertMarkdownRenders(
            '_',
            '<p>_</p>'
        )

    def test_standalone_asterisk_in_text(self):
        self.assertMarkdownRenders(
            'foo * bar',
            '<p>foo * bar</p>'
        )

    def test_standalone_understore_in_text(self):
        self.assertMarkdownRenders(
            'foo _ bar',
            '<p>foo _ bar</p>'
        )

    def test_standalone_asterisks_in_text(self):
        self.assertMarkdownRenders(
            'foo * bar * baz',
            '<p>foo * bar * baz</p>'
        )

    def test_standalone_understores_in_text(self):
        self.assertMarkdownRenders(
            'foo _ bar _ baz',
            '<p>foo _ bar _ baz</p>'
        )

    def test_standalone_asterisks_with_newlines(self):
        self.assertMarkdownRenders(
            'foo\n* bar *\nbaz',
            '<p>foo\n* bar *\nbaz</p>'
        )

    def test_standalone_understores_with_newlines(self):
        self.assertMarkdownRenders(
            'foo\n_ bar _\nbaz',
            '<p>foo\n_ bar _\nbaz</p>'
        )

    def test_standalone_asterisks_at_end(self):
        self.assertMarkdownRenders(
            'foo * bar *',
            '<p>foo * bar *</p>'
        )

    def test_standalone_understores_at_begin_end(self):
        self.assertMarkdownRenders(
            '_ bar _',
            '<p>_ bar _</p>'
        )

    def test_complex_emphasis_asterisk(self):
        self.assertMarkdownRenders(
            'This is text **bold *italic bold*** with more text',
            '<p>This is text <strong>bold <em>italic bold</em></strong> with more text</p>'
        )

    def test_complex_emphasis_asterisk_mid_word(self):
        self.assertMarkdownRenders(
            'This is text **bold*italic bold*** with more text',
            '<p>This is text <strong>bold<em>italic bold</em></strong> with more text</p>'
        )

    def test_complex_emphasis_smart_underscore(self):
        self.assertMarkdownRenders(
            'This is text __bold _italic bold___ with more text',
            '<p>This is text <strong>bold <em>italic bold</em></strong> with more text</p>'
        )

    def test_complex_emphasis_smart_underscore_mid_word(self):
        self.assertMarkdownRenders(
            'This is text __bold_italic bold___ with more text',
            '<p>This is text __bold_italic bold___ with more text</p>'
        )

    def test_nested_emphasis(self):

        self.assertMarkdownRenders(
            'This text is **bold *italic* *italic* bold**',
            '<p>This text is <strong>bold <em>italic</em> <em>italic</em> bold</strong></p>'
        )

    def test_complex_multple_emphasis_type(self):

        self.assertMarkdownRenders(
            'traced ***along*** bla **blocked** if other ***or***',
            '<p>traced <strong><em>along</em></strong> bla <strong>blocked</strong> if other <strong><em>or</em></strong></p>'  # noqa: E501
        )

    def test_complex_multple_emphasis_type_variant2(self):

        self.assertMarkdownRenders(
            'on the **1-4 row** of the AP Combat Table ***and*** receive',
            '<p>on the <strong>1-4 row</strong> of the AP Combat Table <strong><em>and</em></strong> receive</p>'
        )