Beispiel #1
0
    def traverse(tree, depth=1):
        ul = htmlutils.Tag('ul',
                           classes={
                               'nav',
                               'nav-pills',
                               'nav-stacked',
                               'depth-' + str(depth),
                           })
        yield ul.start()
        for page, children in tree:
            is_active = page.pk == calling_page.pk

            li = htmlutils.Tag('li')
            li.toggle_class('active', is_active)

            yield li.start()

            if is_active:
                yield htmlutils.tag('a', page.title, href='#')
            else:
                yield htmlutils.tag('a', page.title, href=page.url)

            if children:
                yield from traverse(children, depth=depth + 1)

            yield li.end()
        yield ul.end()
Beispiel #2
0
    def test_toggle_class(self):
        tag = htmlutils.Tag('div')

        tag.toggle_class('active')
        self.assertEqual(tag.attrs(), ' class="active"')

        tag.toggle_class('active')
        self.assertEqual(tag.attrs(), '')

        tag.toggle_class('active', False)
        self.assertEqual(tag.attrs(), '')

        tag.toggle_class('active', True)
        tag.toggle_class('more')
        self.assertEqual(tag.attrs(), ' class="active more"')

        tag.toggle_class('active', False)
        self.assertEqual(tag.attrs(), ' class="more"')
Beispiel #3
0
 def test_tag(self):
     tag = htmlutils.Tag('a', href='http://www.example.com/')
     self.assertEqual(tag.start(), '<a href="http://www.example.com/">')
     self.assertEqual(tag.end(), '</a>')
Beispiel #4
0
 def test_no_attrs(self):
     tag = htmlutils.Tag('div')
     self.assertEqual(tag.start(), '<div>')
Beispiel #5
0
 def test_data(self):
     tag = htmlutils.Tag('div')
     tag.data['item'] = '1'
     self.assertEqual(tag.attrs(), ' data-item="1"')
Beispiel #6
0
 def test_classes(self):
     tag = htmlutils.Tag('div')
     tag.classes.add('active')
     tag.classes.add('more')
     self.assertEqual(tag.attrs(), ' class="active more"')
Beispiel #7
0
 def test_attrs(self):
     tag = htmlutils.Tag('div')
     self.assertEqual(tag.attrs(attr='"<"'), ' attr="&quot;&lt;&quot;"')