예제 #1
0
 def test_extract_titles(self):
     """ Test the ``extract_titles`` utility. """
     document_tree = RootTreeNode()
     document_tree.new_child(None, TextTreeNode)
     a1 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a2 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a3 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a4 = document_tree.new_child('title', generate_title_cls(1))
     titles = extract_titles(document_tree)
     self.assertEqual([a1, a2, a3, a4], titles)
예제 #2
0
 def test_extract_titles(self):
     """ Test the ``extract_titles`` utility. """
     document_tree = RootTreeNode()
     document_tree.new_child(None, TextTreeNode)
     a1 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a2 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a3 = document_tree.new_child('title', generate_title_cls(1))
     document_tree.new_child(None, TextTreeNode)
     a4 = document_tree.new_child('title', generate_title_cls(1))
     titles = extract_titles(document_tree)
     self.assertEqual([a1, a2, a3, a4], titles)
예제 #3
0
 def test_render_html_without_permalink(self):
     """ Test the ``render_html`` when the "id" attribute is not set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1', generate_title_cls(1), attrs={})
     output_result = tree_node.render_html('Hello World!')
     expected_result = '<h1>Hello World!</h1>\n'
     self.assertEqual(expected_result, output_result)
예제 #4
0
 def test_constructor(self):
     """ Test if the constructor set the title level and HTML tag name correctly. """
     for level in range(1, 7):
         cls = generate_title_cls(level)
         self.assertEqual(cls.title_level, level)
         self.assertEqual(cls.html_tagname, 'h%d' % level)
         self.assertEqual('h%d' % level, cls.canonical_tag_name)
예제 #5
0
 def test_generator_cls(self):
     """ Test the constructor function. """
     cls = generate_title_cls(1)
     self.assertEqual(1, cls.title_level)
     self.assertEqual('h1', cls.html_tagname)
     self.assertEqual('h1', cls.canonical_tag_name)
     self.assertEqual((), cls.alias_tag_names)
예제 #6
0
 def test_render_text_with_permalink(self):
     """ Test the ``render_text`` when the "id" attribute is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1', generate_title_cls(1), attrs={'id': 'test'})
     output_result = tree_node.render_text('Hello World!')
     expected_result = '#[test] Hello World!\n'
     self.assertEqual(expected_result, output_result)
예제 #7
0
 def test_make_auto_title_ids(self):
     """ Test the ``make_auto_title_ids`` utility. """
     document_tree = RootTreeNode()
     document_tree.new_child(None, TextTreeNode)
     a1 = document_tree.new_child('title', generate_title_cls(1))
     a1.new_child(None, TextTreeNode, content='Title 1')
     a2 = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'title-2-custom'})
     a2.new_child(None, TextTreeNode, content='Title 2')
     a3 = document_tree.new_child('title', generate_title_cls(1))
     a3.new_child(None, TextTreeNode, content='Title 3')
     a4 = document_tree.new_child('title', generate_title_cls(1))
     make_auto_title_ids(document_tree)
     self.assertEqual('title-1', a1.get_permalink_slug())
     self.assertEqual('title-2-custom', a2.get_permalink_slug())
     self.assertEqual('title-3', a3.get_permalink_slug())
     self.assertEqual('', a4.get_permalink_slug())
예제 #8
0
 def test_generator_cls(self):
     """ Test the constructor function. """
     cls = generate_title_cls(1)
     self.assertEqual(1, cls.title_level)
     self.assertEqual('h1', cls.html_tagname)
     self.assertEqual('h1', cls.canonical_tag_name)
     self.assertEqual((), cls.alias_tag_names)
예제 #9
0
 def test_constructor(self):
     """ Test if the constructor set the title level and HTML tag name correctly. """
     for level in range(1, 7):
         cls = generate_title_cls(level)
         self.assertEqual(cls.title_level, level)
         self.assertEqual(cls.html_tagname, 'h%d' % level)
         self.assertEqual('h%d' % level, cls.canonical_tag_name)
예제 #10
0
 def test_get_permalink_slug_call_slugify(self):
     """ Test the ``get_permalink_slug`` method call the ``slugify`` function. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1', generate_title_cls(1), attrs={'id': 'test'})
     with unittest.mock.patch('skcode.tags.titles.slugify') as mock_slugify:
         tree_node.get_permalink_slug()
     mock_slugify.assert_called_once_with('test')
예제 #11
0
 def test_get_permalink_slug_with_id_set(self):
     """ Test the ``get_permalink_slug`` when the "id" attribute is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1',
                                          generate_title_cls(1),
                                          attrs={'id': 'test'})
     permalink_slug = tree_node.get_permalink_slug()
     self.assertEqual('test', permalink_slug)
예제 #12
0
 def test_get_permalink_slug_without_value(self):
     """ Test the ``get_permalink_slug`` when no value is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1',
                                          generate_title_cls(1),
                                          attrs={})
     permalink_slug = tree_node.get_permalink_slug()
     self.assertEqual('', permalink_slug)
예제 #13
0
 def test_make_auto_title_ids(self):
     """ Test the ``make_auto_title_ids`` utility. """
     document_tree = RootTreeNode()
     document_tree.new_child(None, TextTreeNode)
     a1 = document_tree.new_child('title', generate_title_cls(1))
     a1.new_child(None, TextTreeNode, content='Title 1')
     a2 = document_tree.new_child('title',
                                  generate_title_cls(1),
                                  attrs={'id': 'title-2-custom'})
     a2.new_child(None, TextTreeNode, content='Title 2')
     a3 = document_tree.new_child('title', generate_title_cls(1))
     a3.new_child(None, TextTreeNode, content='Title 3')
     a4 = document_tree.new_child('title', generate_title_cls(1))
     make_auto_title_ids(document_tree)
     self.assertEqual('title-1', a1.get_permalink_slug())
     self.assertEqual('title-2-custom', a2.get_permalink_slug())
     self.assertEqual('title-3', a3.get_permalink_slug())
     self.assertEqual('', a4.get_permalink_slug())
예제 #14
0
 def test_render_html_with_permalink(self):
     """ Test the ``render_html`` when the "id" attribute is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1',
                                          generate_title_cls(1),
                                          attrs={'id': 'test'})
     output_result = tree_node.render_html('Hello World!')
     expected_result = '<h1><a id="test">Hello World!</a></h1>\n'
     self.assertEqual(expected_result, output_result)
예제 #15
0
 def test_render_text_without_permalink(self):
     """ Test the ``render_text`` when the "id" attribute is not set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1',
                                          generate_title_cls(1),
                                          attrs={})
     output_result = tree_node.render_text('Hello World!')
     expected_result = '# Hello World!\n'
     self.assertEqual(expected_result, output_result)
예제 #16
0
 def test_get_permalink_slug_call_slugify(self):
     """ Test the ``get_permalink_slug`` method call the ``slugify`` function. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1',
                                          generate_title_cls(1),
                                          attrs={'id': 'test'})
     with unittest.mock.patch('skcode.tags.titles.slugify') as mock_slugify:
         tree_node.get_permalink_slug()
     mock_slugify.assert_called_once_with('test')
예제 #17
0
 def test_get_permalink_slug_with_id_and_tagname_set(self):
     """ Test the ``get_permalink_slug`` when the tag name and "id" attribute is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1', generate_title_cls(1), attrs={'h1': 'test', 'id': 'test2'})
     permalink_slug = tree_node.get_permalink_slug()
     self.assertEqual('test', permalink_slug)
예제 #18
0
 def test_make_titles_hierarchy(self):
     """ Test the ``make_titles_hierarchy`` utility. """
     document_tree = RootTreeNode()
     a = document_tree.new_child('title', generate_title_cls(3))
     b = document_tree.new_child('title', generate_title_cls(4))
     c = document_tree.new_child('title', generate_title_cls(1))
     d = document_tree.new_child('title', generate_title_cls(2))
     e = document_tree.new_child('title', generate_title_cls(3))
     f = document_tree.new_child('title', generate_title_cls(2))
     g = document_tree.new_child('title', generate_title_cls(3))
     h = document_tree.new_child('title', generate_title_cls(1))
     i = document_tree.new_child('title', generate_title_cls(2))
     j = document_tree.new_child('title', generate_title_cls(1))
     k = document_tree.new_child('title', generate_title_cls(1))
     l = document_tree.new_child('title', generate_title_cls(3))
     m = document_tree.new_child('title', generate_title_cls(4))
     n = document_tree.new_child('title', generate_title_cls(2))
     titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
     titles_hierarchy = make_titles_hierarchy(titles)
     self.assertEqual([(a, [(b, [])]), (c, [(d, [(e, [])]),
                                            (f, [(g, [])])]),
                       (h, [(i, [])]), (j, []),
                       (k, [(l, [(m, [])]), (n, [])])], titles_hierarchy)
예제 #19
0
    def test_render_titles_hierarchy_html(self):
        """ Test the ``render_titles_hierarchy_text`` utility. """
        document_tree = RootTreeNode()
        a = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title a'})
        a.new_child(None, TextTreeNode, content='Title a')
        b = document_tree.new_child('title',
                                    generate_title_cls(4),
                                    attrs={'id': 'Title b'})
        b.new_child(None, TextTreeNode, content='Title b')
        c = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title c'})
        c.new_child(None, TextTreeNode, content='Title c')
        d = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title d'})
        d.new_child(None, TextTreeNode, content='Title d')
        e = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title e'})
        e.new_child(None, TextTreeNode, content='Title e')
        f = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title f'})
        f.new_child(None, TextTreeNode, content='Title f')
        g = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title g'})
        g.new_child(None, TextTreeNode, content='Title g')
        h = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title h'})
        h.new_child(None, TextTreeNode, content='Title h')
        i = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title i'})
        i.new_child(None, TextTreeNode, content='Title i')
        j = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title j'})
        j.new_child(None, TextTreeNode, content='Title j')
        k = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title k'})
        k.new_child(None, TextTreeNode, content='Title k')
        l = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title l'})
        l.new_child(None, TextTreeNode, content='Title l')
        m = document_tree.new_child('title',
                                    generate_title_cls(4),
                                    attrs={'id': 'Title m'})
        m.new_child(None, TextTreeNode, content='Title m')
        n = document_tree.new_child('title', generate_title_cls(2))
        n.new_child(None, TextTreeNode, content='Title n')
        titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
        titles_hierarchy = make_titles_hierarchy(titles)
        output = render_titles_hierarchy_html(titles_hierarchy)
        expected_output = """<ul class="titles-summary">
<li class="titles-summary-entry">
<a href="#title-a" class="titles-summary-link">Title a</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-b" class="titles-summary-link">Title b</a>
</li>
</ul>
</li>
<li class="titles-summary-entry">
<a href="#title-c" class="titles-summary-link">Title c</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-d" class="titles-summary-link">Title d</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-e" class="titles-summary-link">Title e</a>
</li>
</ul>
</li>
<li class="titles-summary-entry">
<a href="#title-f" class="titles-summary-link">Title f</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-g" class="titles-summary-link">Title g</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="titles-summary-entry">
<a href="#title-h" class="titles-summary-link">Title h</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-i" class="titles-summary-link">Title i</a>
</li>
</ul>
</li>
<li class="titles-summary-entry">
<a href="#title-j" class="titles-summary-link">Title j</a>
</li>
<li class="titles-summary-entry">
<a href="#title-k" class="titles-summary-link">Title k</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-l" class="titles-summary-link">Title l</a>
<ul class="titles-summary-subentry">
<li class="titles-summary-entry">
<a href="#title-m" class="titles-summary-link">Title m</a>
</li>
</ul>
</li>
<li class="titles-summary-entry">
<a href="#" class="titles-summary-link">Title n</a>
</li>
</ul>
</li>
</ul>"""
        self.assertEqual(expected_output, output)
예제 #20
0
    def test_render_titles_hierarchy_html_custom_class(self):
        """ Test the ``render_titles_hierarchy_html`` utility. """
        document_tree = RootTreeNode()
        a = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title a'})
        a.new_child(None, TextTreeNode, content='Title a')
        b = document_tree.new_child('title', generate_title_cls(4), attrs={'id': 'Title b'})
        b.new_child(None, TextTreeNode, content='Title b')
        c = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title c'})
        c.new_child(None, TextTreeNode, content='Title c')
        d = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title d'})
        d.new_child(None, TextTreeNode, content='Title d')
        e = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title e'})
        e.new_child(None, TextTreeNode, content='Title e')
        f = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title f'})
        f.new_child(None, TextTreeNode, content='Title f')
        g = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title g'})
        g.new_child(None, TextTreeNode, content='Title g')
        h = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title h'})
        h.new_child(None, TextTreeNode, content='Title h')
        i = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title i'})
        i.new_child(None, TextTreeNode, content='Title i')
        j = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title j'})
        j.new_child(None, TextTreeNode, content='Title j')
        k = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title k'})
        k.new_child(None, TextTreeNode, content='Title k')
        l = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title l'})
        l.new_child(None, TextTreeNode, content='Title l')
        m = document_tree.new_child('title', generate_title_cls(4), attrs={'id': 'Title m'})
        m.new_child(None, TextTreeNode, content='Title m')
        n = document_tree.new_child('title', generate_title_cls(2))
        n.new_child(None, TextTreeNode, content='Title n')
        titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
        titles_hierarchy = make_titles_hierarchy(titles)
        output = render_titles_hierarchy_html(titles_hierarchy,
                                              root_ul_class_name='custom_summary',
                                              li_class_name='custom_summary-entry',
                                              a_class_name='custom_summary-link',
                                              ul_class_name='custom_summary-subentry')
        expected_output = """<ul class="custom_summary">
<li class="custom_summary-entry">
<a href="#title-a" class="custom_summary-link">Title a</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-b" class="custom_summary-link">Title b</a>
</li>
</ul>
</li>
<li class="custom_summary-entry">
<a href="#title-c" class="custom_summary-link">Title c</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-d" class="custom_summary-link">Title d</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-e" class="custom_summary-link">Title e</a>
</li>
</ul>
</li>
<li class="custom_summary-entry">
<a href="#title-f" class="custom_summary-link">Title f</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-g" class="custom_summary-link">Title g</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="custom_summary-entry">
<a href="#title-h" class="custom_summary-link">Title h</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-i" class="custom_summary-link">Title i</a>
</li>
</ul>
</li>
<li class="custom_summary-entry">
<a href="#title-j" class="custom_summary-link">Title j</a>
</li>
<li class="custom_summary-entry">
<a href="#title-k" class="custom_summary-link">Title k</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-l" class="custom_summary-link">Title l</a>
<ul class="custom_summary-subentry">
<li class="custom_summary-entry">
<a href="#title-m" class="custom_summary-link">Title m</a>
</li>
</ul>
</li>
<li class="custom_summary-entry">
<a href="#" class="custom_summary-link">Title n</a>
</li>
</ul>
</li>
</ul>"""
        self.assertEqual(expected_output, output)
예제 #21
0
    def test_render_titles_hierarchy_text(self):
        """ Test the ``render_titles_hierarchy_text`` utility. """
        document_tree = RootTreeNode()
        a = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title a'})
        a.new_child(None, TextTreeNode, content='Title a')
        b = document_tree.new_child('title', generate_title_cls(4), attrs={'id': 'Title b'})
        b.new_child(None, TextTreeNode, content='Title b')
        c = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title c'})
        c.new_child(None, TextTreeNode, content='Title c')
        d = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title d'})
        d.new_child(None, TextTreeNode, content='Title d')
        e = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title e'})
        e.new_child(None, TextTreeNode, content='Title e')
        f = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title f'})
        f.new_child(None, TextTreeNode, content='Title f')
        g = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title g'})
        g.new_child(None, TextTreeNode, content='Title g')
        h = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title h'})
        h.new_child(None, TextTreeNode, content='Title h')
        i = document_tree.new_child('title', generate_title_cls(2), attrs={'id': 'Title i'})
        i.new_child(None, TextTreeNode, content='Title i')
        j = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title j'})
        j.new_child(None, TextTreeNode, content='Title j')
        k = document_tree.new_child('title', generate_title_cls(1), attrs={'id': 'Title k'})
        k.new_child(None, TextTreeNode, content='Title k')
        l = document_tree.new_child('title', generate_title_cls(3), attrs={'id': 'Title l'})
        l.new_child(None, TextTreeNode, content='Title l')
        m = document_tree.new_child('title', generate_title_cls(4), attrs={'id': 'Title m'})
        m.new_child(None, TextTreeNode, content='Title m')
        n = document_tree.new_child('title', generate_title_cls(2))
        n.new_child(None, TextTreeNode, content='Title n')
        titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
        titles_hierarchy = make_titles_hierarchy(titles)
        output = render_titles_hierarchy_text(titles_hierarchy)
        expected_output = """# Title a
## Title b
# Title c
## Title d
### Title e
## Title f
### Title g
# Title h
## Title i
# Title j
# Title k
## Title l
### Title m
## Title n"""
        self.assertEqual(expected_output, output)
예제 #22
0
 def test_make_titles_hierarchy(self):
     """ Test the ``make_titles_hierarchy`` utility. """
     document_tree = RootTreeNode()
     a = document_tree.new_child('title', generate_title_cls(3))
     b = document_tree.new_child('title', generate_title_cls(4))
     c = document_tree.new_child('title', generate_title_cls(1))
     d = document_tree.new_child('title', generate_title_cls(2))
     e = document_tree.new_child('title', generate_title_cls(3))
     f = document_tree.new_child('title', generate_title_cls(2))
     g = document_tree.new_child('title', generate_title_cls(3))
     h = document_tree.new_child('title', generate_title_cls(1))
     i = document_tree.new_child('title', generate_title_cls(2))
     j = document_tree.new_child('title', generate_title_cls(1))
     k = document_tree.new_child('title', generate_title_cls(1))
     l = document_tree.new_child('title', generate_title_cls(3))
     m = document_tree.new_child('title', generate_title_cls(4))
     n = document_tree.new_child('title', generate_title_cls(2))
     titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
     titles_hierarchy = make_titles_hierarchy(titles)
     self.assertEqual([
         (a, [
             (b, [])
         ]),
         (c, [
             (d, [
                 (e, [])
             ]),
             (f, [
                 (g, [])
             ])
         ]),
         (h, [
             (i, [])
         ]),
         (j, []),
         (k, [
             (l, [
                 (m, [])
             ]), (n, [])
         ])
     ], titles_hierarchy)
예제 #23
0
    def test_render_titles_hierarchy_text(self):
        """ Test the ``render_titles_hierarchy_text`` utility. """
        document_tree = RootTreeNode()
        a = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title a'})
        a.new_child(None, TextTreeNode, content='Title a')
        b = document_tree.new_child('title',
                                    generate_title_cls(4),
                                    attrs={'id': 'Title b'})
        b.new_child(None, TextTreeNode, content='Title b')
        c = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title c'})
        c.new_child(None, TextTreeNode, content='Title c')
        d = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title d'})
        d.new_child(None, TextTreeNode, content='Title d')
        e = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title e'})
        e.new_child(None, TextTreeNode, content='Title e')
        f = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title f'})
        f.new_child(None, TextTreeNode, content='Title f')
        g = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title g'})
        g.new_child(None, TextTreeNode, content='Title g')
        h = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title h'})
        h.new_child(None, TextTreeNode, content='Title h')
        i = document_tree.new_child('title',
                                    generate_title_cls(2),
                                    attrs={'id': 'Title i'})
        i.new_child(None, TextTreeNode, content='Title i')
        j = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title j'})
        j.new_child(None, TextTreeNode, content='Title j')
        k = document_tree.new_child('title',
                                    generate_title_cls(1),
                                    attrs={'id': 'Title k'})
        k.new_child(None, TextTreeNode, content='Title k')
        l = document_tree.new_child('title',
                                    generate_title_cls(3),
                                    attrs={'id': 'Title l'})
        l.new_child(None, TextTreeNode, content='Title l')
        m = document_tree.new_child('title',
                                    generate_title_cls(4),
                                    attrs={'id': 'Title m'})
        m.new_child(None, TextTreeNode, content='Title m')
        n = document_tree.new_child('title', generate_title_cls(2))
        n.new_child(None, TextTreeNode, content='Title n')
        titles = [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
        titles_hierarchy = make_titles_hierarchy(titles)
        output = render_titles_hierarchy_text(titles_hierarchy)
        expected_output = """# Title a
## Title b
# Title c
## Title d
### Title e
## Title f
### Title g
# Title h
## Title i
# Title j
# Title k
## Title l
### Title m
## Title n"""
        self.assertEqual(expected_output, output)
예제 #24
0
 def test_get_permalink_slug_without_value(self):
     """ Test the ``get_permalink_slug`` when no value is set. """
     root_tree_node = RootTreeNode()
     tree_node = root_tree_node.new_child('h1', generate_title_cls(1), attrs={})
     permalink_slug = tree_node.get_permalink_slug()
     self.assertEqual('', permalink_slug)