From ede69aee2e53cd2eb2c960dc3ecba2d423faac82 Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Tue, 30 Dec 2014 12:02:35 -0500 Subject: Complete test coverage of TOC Extension --- markdown/extensions/toc.py | 14 ++++++-------- tests/test_extensions.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/markdown/extensions/toc.py b/markdown/extensions/toc.py index b3bab93..e9d9c02 100644 --- a/markdown/extensions/toc.py +++ b/markdown/extensions/toc.py @@ -59,7 +59,7 @@ def order_toc_list(toc_list): for p in reversed(parents): if current_level <= p['level']: to_pop += 1 - else: + else: # pragma: no cover break if to_pop: levels = levels[:-to_pop] @@ -153,7 +153,6 @@ class TocTreeprocessor(Treeprocessor): used_ids.add(c.attrib["id"]) toc_list = [] - marker_found = False for (p, c) in self.iterparent(doc): text = ''.join(itertext(c)).strip() if not text: @@ -171,7 +170,6 @@ class TocTreeprocessor(Treeprocessor): if p[i] == c: p[i] = div break - marker_found = True if header_rgx.match(c.tag): @@ -223,12 +221,12 @@ class TocExtension(Extension): "title": ["", "Title to insert into TOC
- " "Defaults to an empty string"], - "anchorlink": [0, - "1 if header should be a self link - " - "Defaults to 0"], + "anchorlink": [False, + "True if header should be a self link - " + "Defaults to False"], "permalink": [0, - "1 or link text if a Sphinx-style permalink should " - "be added - Defaults to 0"] + "True or link text if a Sphinx-style permalink should " + "be added - Defaults to False"] } super(TocExtension, self).__init__(*args, **kwargs) diff --git a/tests/test_extensions.py b/tests/test_extensions.py index 2380f17..dae8829 100644 --- a/tests/test_extensions.py +++ b/tests/test_extensions.py @@ -741,6 +741,48 @@ class TestTOC(unittest.TestCase): self.md.reset() self.assertEqual(self.md.toc, '') + def testAnchorLink(self): + """ Test TOC Anchorlink. """ + md = markdown.Markdown( + extensions=[markdown.extensions.toc.TocExtension(anchorlink=True)] + ) + text = '# Header 1\n\n## Header *2*' + self.assertEqual( + md.convert(text), + '

Header 1

\n' + '

Header 2

' + ) + + def testTitle(self): + """ Test TOC Title. """ + md = markdown.Markdown( + extensions=[markdown.extensions.toc.TocExtension(title='Table of Contents')] + ) + md.convert('# Header 1\n\n## Header 2') + self.assertTrue(md.toc.startswith('
Table of Contents
    ')) + + def testWithAttrList(self): + """ Test TOC with attr_list Extension. """ + md = markdown.Markdown(extensions=['markdown.extensions.toc', 'markdown.extensions.attr_list']) + text = '# Header 1\n\n## Header 2 { #foo }' + self.assertEqual( + md.convert(text), + '

    Header 1

    \n' + '

    Header 2

    ' + ) + self.assertEqual( + md.toc, + '
    \n' + '
      \n' # noqa + '
    • Header 1' # noqa + '\n' # noqa + '
    • \n' # noqa + '
    \n' # noqa + '
    \n' + ) + class TestSmarty(unittest.TestCase): def setUp(self): -- cgit v1.2.3