aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/test_extensions.py64
1 files changed, 37 insertions, 27 deletions
diff --git a/tests/test_extensions.py b/tests/test_extensions.py
index 72ce212..e9b6112 100644
--- a/tests/test_extensions.py
+++ b/tests/test_extensions.py
@@ -11,6 +11,15 @@ from __future__ import unicode_literals
import unittest
import markdown
+class TestCaseWithAssertStartsWith(unittest.TestCase):
+
+ def assertStartsWith(self, expectedPrefix, text, msg=None):
+ if not text.startswith(expectedPrefix):
+ if len(expectedPrefix) + 5 < len(text):
+ text = text[:len(expectedPrefix) + 5] + '...'
+ standardMsg = '%s not found at the start of %s' % (repr(expectedPrefix),
+ repr(text))
+ self.fail(self._formatMessage(msg, standardMsg))
class TestExtensionClass(unittest.TestCase):
""" Test markdown.extensions.Extension. """
@@ -85,8 +94,7 @@ class TestAbbr(unittest.TestCase):
'and <em><abbr title="Abreviation">ABBR</abbr></em></p>'
)
-
-class TestCodeHilite(unittest.TestCase):
+class TestCodeHilite(TestCaseWithAssertStartsWith):
""" Test codehilite extension. """
def setUp(self):
@@ -101,7 +109,7 @@ class TestCodeHilite(unittest.TestCase):
md = markdown.Markdown(extensions=['markdown.extensions.codehilite'])
if self.has_pygments:
# Pygments can use random lexer here as we did not specify the language
- self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre>'))
+ self.assertStartsWith('<div class="codehilite"><pre>', md.convert(text))
else:
self.assertEqual(
md.convert(text),
@@ -117,10 +125,9 @@ class TestCodeHilite(unittest.TestCase):
# Different versions of pygments output slightly different markup.
# So we use 'startwith' and test just enough to confirm that
# pygments received and processed linenums.
- self.assertTrue(
- md.convert(text).startswith(
- '<table class="codehilitetable"><tr><td class="linenos">'
- )
+ self.assertStartsWith(
+ '<table class="codehilitetable"><tr><td class="linenos">',
+ md.convert(text)
)
else:
self.assertEqual(
@@ -134,7 +141,7 @@ class TestCodeHilite(unittest.TestCase):
md = markdown.Markdown(
extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=False)])
if self.has_pygments:
- self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre><span'))
+ self.assertStartsWith('<div class="codehilite"><pre><span', md.convert(text))
else:
self.assertEqual(
md.convert(text),
@@ -148,7 +155,7 @@ class TestCodeHilite(unittest.TestCase):
extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)])
if self.has_pygments:
# Pygments can use random lexer here as we did not specify the language
- self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre>'))
+ self.assertStartsWith('<div class="codehilite"><pre>', md.convert(text))
else:
self.assertEqual(
md.convert(text),
@@ -164,10 +171,9 @@ class TestCodeHilite(unittest.TestCase):
# Differant versions of pygments output slightly different markup.
# So we use 'startwith' and test just enough to confirm that
# pygments received and processed linenums.
- self.assertTrue(
- md.convert(text).startswith(
- '<table class="codehilitetable"><tr><td class="linenos">'
- )
+ self.assertStartsWith(
+ '<table class="codehilitetable"><tr><td class="linenos">',
+ md.convert(text)
)
else:
self.assertEqual(
@@ -182,7 +188,7 @@ class TestCodeHilite(unittest.TestCase):
extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)]
)
if self.has_pygments:
- self.assertTrue(md.convert(text).startswith('<div class="codehilite"><pre><span'))
+ self.assertStartsWith('<div class="codehilite"><pre><span', md.convert(text))
else:
self.assertEqual(
md.convert(text),
@@ -198,10 +204,9 @@ class TestCodeHilite(unittest.TestCase):
for text in (text0, text1):
md = markdown.Markdown(extensions=['markdown.extensions.codehilite'])
if self.has_pygments:
- self.assertTrue(
- md.convert(text).startswith(
- '<div class="codehilite"><pre><span class="hll"'
- )
+ self.assertStartsWith(
+ '<div class="codehilite"><pre><span class="hll"',
+ md.convert(text)
)
else:
self.assertEqual(
@@ -224,7 +229,7 @@ class TestCodeHilite(unittest.TestCase):
)
-class TestFencedCode(unittest.TestCase):
+class TestFencedCode(TestCaseWithAssertStartsWith):
""" Test fenced_code extension. """
def setUp(self):
@@ -320,8 +325,9 @@ line 3
)
if self.has_pygments:
- self.assertTrue(
- md.convert(text).startswith('<div class="codehilite"><pre><span class="hll"')
+ self.assertStartsWith(
+ '<div class="codehilite"><pre><span class="hll"',
+ md.convert(text)
)
else:
self.assertEqual(
@@ -354,8 +360,9 @@ line 3
]
)
if self.has_pygments:
- self.assertTrue(
- md.convert(text).startswith('<div class="codehilite"><pre><span class="hll"')
+ self.assertStartsWith(
+ '<div class="codehilite"><pre><span class="hll"',
+ md.convert(text)
)
else:
self.assertEqual(
@@ -602,7 +609,7 @@ class TestAdmonition(unittest.TestCase):
self.assertEqual(RE.match(test).groups(), expected)
-class TestTOC(unittest.TestCase):
+class TestTOC(TestCaseWithAssertStartsWith):
""" Test TOC Extension. """
def setUp(self):
@@ -680,13 +687,13 @@ class TestTOC(unittest.TestCase):
'<h1 id="header-1">Header 1</h1>\n'
'<h2 id="header-2">Header 2</h2>'
)
- self.assertTrue(md.toc.startswith('<div class="toc">'))
+ self.assertStartsWith('<div class="toc">', md.toc)
def testReset(self):
""" Test TOC Reset. """
self.assertEqual(self.md.toc, '')
self.md.convert('# Header 1\n\n## Header 2')
- self.assertTrue(self.md.toc.startswith('<div class="toc">'))
+ self.assertStartsWith('<div class="toc">', self.md.toc)
self.md.reset()
self.assertEqual(self.md.toc, '')
@@ -771,7 +778,10 @@ class TestTOC(unittest.TestCase):
extensions=[markdown.extensions.toc.TocExtension(title='Table of Contents')]
)
md.convert('# Header 1\n\n## Header 2')
- self.assertTrue(md.toc.startswith('<div class="toc"><span class="toctitle">Table of Contents</span><ul>'))
+ self.assertStartsWith(
+ '<div class="toc"><span class="toctitle">Table of Contents</span><ul>',
+ md.toc
+ )
def testWithAttrList(self):
""" Test TOC with attr_list Extension. """