예제 #1
0
 def assert_refnode(node, class_name, target, reftype=None, domain='js'):
     attributes = {
         'refdomain': domain,
         'reftarget': target,
     }
     if reftype is not None:
         attributes['reftype'] = reftype
     if class_name is not False:
         attributes['js:class'] = class_name
     assert_node(node, **attributes)
예제 #2
0
 def assert_refnode(node, mod_name, prefix, target, reftype=None,
                    domain='js'):
     attributes = {
         'refdomain': domain,
         'reftarget': target,
     }
     if reftype is not None:
         attributes['reftype'] = reftype
     if mod_name is not False:
         attributes['js:module'] = mod_name
     if prefix is not False:
         attributes['js:object'] = prefix
     assert_node(node, **attributes)
예제 #3
0
def test_compact_refonly_bullet_list(app, status, warning):
    app.builder.build_all()
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())
    assert_node(doctree[0], nodes.section)
    assert len(doctree[0]) == 5

    assert doctree[0][1].astext() == 'List A:'
    assert_node(doctree[0][2], nodes.bullet_list)
    assert_node(doctree[0][2][0][0], addnodes.compact_paragraph)
    assert doctree[0][2][0][0].astext() == 'genindex'

    assert doctree[0][3].astext() == 'List B:'
    assert_node(doctree[0][4], nodes.bullet_list)
    assert_node(doctree[0][4][0][0], nodes.paragraph)
    assert doctree[0][4][0][0].astext() == 'Hello'
예제 #4
0
def test_compact_refonly_bullet_list(app, status, warning):
    app.builder.build_all()
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())
    assert_node(doctree[0], nodes.section)
    assert len(doctree[0]) == 5

    assert doctree[0][1].astext() == 'List A:'
    assert_node(doctree[0][2], nodes.bullet_list)
    assert_node(doctree[0][2][0][0], addnodes.compact_paragraph)
    assert doctree[0][2][0][0].astext() == 'genindex'

    assert doctree[0][3].astext() == 'List B:'
    assert_node(doctree[0][4], nodes.bullet_list)
    assert_node(doctree[0][4][0][0], nodes.paragraph)
    assert doctree[0][4][0][0].astext() == 'Hello'
예제 #5
0
 def assert_refnode(node,
                    mod_name,
                    prefix,
                    target,
                    reftype=None,
                    domain='js'):
     attributes = {
         'refdomain': domain,
         'reftarget': target,
     }
     if reftype is not None:
         attributes['reftype'] = reftype
     if mod_name is not False:
         attributes['js:module'] = mod_name
     if prefix is not False:
         attributes['js:object'] = prefix
     assert_node(node, **attributes)
예제 #6
0
def test_get_toc_for(app):
    app.build()
    toctree = app.env.get_toc_for('index', app.builder)

    assert_node(
        toctree,
        [
            bullet_list,
            (
                [
                    list_item,
                    (
                        compact_paragraph,  # [0][0]
                        [
                            bullet_list,
                            (
                                addnodes.toctree,  # [0][1][0]
                                comment,  # [0][1][1]
                                list_item)
                        ])
                ],  # [0][1][2]
                [
                    list_item,
                    (
                        compact_paragraph,  # [1][0]
                        [bullet_list, (addnodes.toctree, addnodes.toctree)])
                ],
                [list_item, compact_paragraph])
        ])  # [2][0]
    assert_node(toctree[0][0], [
        compact_paragraph, reference,
        "Welcome to Sphinx Tests's documentation!"
    ])
    assert_node(toctree[0][1][2], ([
        compact_paragraph, reference, "subsection"
    ], [bullet_list, list_item, compact_paragraph, reference, "subsubsection"
        ]))
    assert_node(toctree[1][0],
                [compact_paragraph, reference, "Test for issue #1157"])
    assert_node(toctree[2][0],
                [compact_paragraph, reference, "Indices and tables"])
예제 #7
0
def _test_get_toc_for(app):
    toctree = app.env.get_toc_for('index', app.builder)

    assert_node(toctree,
                [bullet_list, ([list_item, (compact_paragraph,  # [0][0]
                                            [bullet_list, (addnodes.toctree,  # [0][1][0]
                                                           comment,  # [0][1][1]
                                                           list_item)])],  # [0][1][2]
                               [list_item, (compact_paragraph,  # [1][0]
                                            [bullet_list, (addnodes.toctree,
                                                           addnodes.toctree)])],
                               [list_item, compact_paragraph])])  # [2][0]
    assert_node(toctree[0][0],
                [compact_paragraph, reference, "Welcome to Sphinx Tests's documentation!"])
    assert_node(toctree[0][1][2],
                ([compact_paragraph, reference, "subsection"],
                 [bullet_list, list_item, compact_paragraph, reference, "subsubsection"]))
    assert_node(toctree[1][0],
                [compact_paragraph, reference, "Test for issue #1157"])
    assert_node(toctree[2][0],
                [compact_paragraph, reference, "Indices and tables"])
예제 #8
0
def test_glob(app, status, warning):
    includefiles = ['foo', 'bar/index', 'bar/bar_1', 'bar/bar_2',
                    'bar/bar_3', 'baz', 'qux/index']

    app.build()

    # tocs
    toctree = app.env.tocs['index']
    assert_node(toctree,
                [bullet_list, list_item, (compact_paragraph,  # [0][0]
                                          [bullet_list, addnodes.toctree])])  # [0][1][0]

    assert_node(toctree[0][0],
                [compact_paragraph, reference, "test-toctree-glob"])
    assert_node(toctree[0][1][0], addnodes.toctree, caption=None,
                glob=True, hidden=False, titlesonly=False,
                maxdepth=-1, numbered=0, includefiles=includefiles,
                entries=[(None, 'foo'), (None, 'bar/index'), (None, 'bar/bar_1'),
                         (None, 'bar/bar_2'), (None, 'bar/bar_3'), (None, 'baz'),
                         (None, 'qux/index')])

    # other collections
    assert app.env.toc_num_entries['index'] == 1
    assert app.env.toctree_includes['index'] == includefiles
    for file in includefiles:
        assert 'index' in app.env.files_to_rebuild[file]
    assert 'index' in app.env.glob_toctrees
    assert app.env.numbered_toctrees == set()
예제 #9
0
def _test_get_toc_for_tocdepth(app):
    toctree = app.env.get_toc_for('tocdepth', app.builder)

    assert_node(toctree,
                [bullet_list, list_item, (compact_paragraph,  # [0][0]
                                          bullet_list)])  # [0][1]
    assert_node(toctree[0][0],
                [compact_paragraph, reference, "level 1"])
    assert_node(toctree[0][1],
                [bullet_list, list_item, compact_paragraph, reference, "level 2"])
예제 #10
0
def _test_get_toc_for_tocdepth(app):
    toctree = app.env.get_toc_for('tocdepth', app.builder)

    assert_node(toctree,
                [bullet_list, list_item, (compact_paragraph,  # [0][0]
                                          bullet_list)])  # [0][1]
    assert_node(toctree[0][0],
                [compact_paragraph, reference, "level 1"])
    assert_node(toctree[0][1],
                [bullet_list, list_item, compact_paragraph, reference, "level 2"])
예제 #11
0
def test_glob(app, status, warning):
    includefiles = [
        'foo', 'bar/index', 'bar/bar_1', 'bar/bar_2', 'bar/bar_3', 'baz',
        'qux/index'
    ]

    app.build()

    # tocs
    toctree = app.env.tocs['index']
    assert_node(
        toctree,
        [
            bullet_list,
            list_item,
            (
                compact_paragraph,  # [0][0]
                [bullet_list, addnodes.toctree])
        ])  # [0][1][0]

    assert_node(toctree[0][0],
                [compact_paragraph, reference, "test-toctree-glob"])
    assert_node(toctree[0][1][0],
                addnodes.toctree,
                caption=None,
                glob=True,
                hidden=False,
                titlesonly=False,
                maxdepth=-1,
                numbered=0,
                includefiles=includefiles,
                entries=[(None, 'foo'), (None, 'bar/index'),
                         (None, 'bar/bar_1'), (None, 'bar/bar_2'),
                         (None, 'bar/bar_3'), (None, 'baz'),
                         (None, 'qux/index')])

    # other collections
    assert app.env.toc_num_entries['index'] == 1
    assert app.env.toctree_includes['index'] == includefiles
    for file in includefiles:
        assert 'index' in app.env.files_to_rebuild[file]
    assert 'index' in app.env.glob_toctrees
    assert app.env.numbered_toctrees == set()
예제 #12
0
def test_keep_warnings_is_False(app, status, warning):
    app.builder.build_all()
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())
    assert_node(doctree[0], nodes.section)
    assert len(doctree[0]) == 1
예제 #13
0
def _test_get_toctree_for_includehidden(app):
    toctree = app.env.get_toctree_for('index', app.builder, collapse=False,
                                      includehidden=False)
    assert_node(toctree,
                [compact_paragraph, ([caption, "Table of Contents"],
                                     bullet_list,
                                     bullet_list)])

    assert_node(toctree[1],
                ([list_item, ([compact_paragraph, reference, "foo"],
                              bullet_list)],
                 [list_item, compact_paragraph, reference, "bar"],
                 [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"]))
    assert_node(toctree[1][0][1],
                ([list_item, compact_paragraph, reference, "quux"],
                 [list_item, compact_paragraph, reference, "foo.1"],
                 [list_item, compact_paragraph, reference, "foo.2"]))

    assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=(1,))
    assert_node(toctree[1][0][1][0][0][0], reference, refuri="quux", secnumber=(1, 1))
    assert_node(toctree[1][0][1][1][0][0], reference, refuri="foo#foo-1", secnumber=(1, 2))
    assert_node(toctree[1][0][1][2][0][0], reference, refuri="foo#foo-2", secnumber=(1, 3))
    assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=(2,))
    assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")

    assert_node(toctree[2],
                [bullet_list, list_item, compact_paragraph, reference, "baz"])
예제 #14
0
def test_image_glob_intl_using_figure_language_filename(app, status, warning):
    app.builder.build_all()

    # index.rst
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())

    assert_node(doctree[0][1],
                nodes.image,
                uri='rimg.png.xx',
                candidates={'*': 'rimg.png.xx'})

    assert isinstance(doctree[0][2], nodes.figure)
    assert_node(doctree[0][2][0],
                nodes.image,
                uri='rimg.png.xx',
                candidates={'*': 'rimg.png.xx'})

    assert_node(doctree[0][3],
                nodes.image,
                uri='img.*',
                candidates={
                    'application/pdf': 'img.pdf',
                    'image/gif': 'img.gif',
                    'image/png': 'img.png'
                })

    assert isinstance(doctree[0][4], nodes.figure)
    assert_node(doctree[0][4][0],
                nodes.image,
                uri='img.*',
                candidates={
                    'application/pdf': 'img.pdf',
                    'image/gif': 'img.gif',
                    'image/png': 'img.png'
                })

    # subdir/index.rst
    doctree = pickle.loads((app.doctreedir / 'subdir/index.doctree').bytes())

    assert_node(doctree[0][1],
                nodes.image,
                uri='subdir/rimg.png',
                candidates={'*': 'subdir/rimg.png'})

    assert_node(doctree[0][2],
                nodes.image,
                uri='subdir/svgimg.*',
                candidates={
                    'application/pdf': 'subdir/svgimg.pdf',
                    'image/svg+xml': 'subdir/svgimg.svg'
                })

    assert isinstance(doctree[0][3], nodes.figure)
    assert_node(doctree[0][3][0],
                nodes.image,
                uri='subdir/svgimg.*',
                candidates={
                    'application/pdf': 'subdir/svgimg.pdf',
                    'image/svg+xml': 'subdir/svgimg.svg'
                })
예제 #15
0
def test_rst_prolog(app, status, warning):
    app.builder.build_all()
    rst = pickle.loads((app.doctreedir / 'restructuredtext.doctree').bytes())
    md = pickle.loads((app.doctreedir / 'markdown.doctree').bytes())

    # rst_prolog
    assert_node(rst[0], nodes.paragraph)
    assert_node(rst[0][0], nodes.emphasis)
    assert_node(rst[0][0][0], nodes.Text)
    assert rst[0][0][0] == 'Hello world'

    # rst_epilog
    assert_node(rst[-1], nodes.section)
    assert_node(rst[-1][-1], nodes.paragraph)
    assert_node(rst[-1][-1][0], nodes.emphasis)
    assert_node(rst[-1][-1][0][0], nodes.Text)
    assert rst[-1][-1][0][0] == 'Good-bye world'

    # rst_prolog & rst_epilog on exlucding reST parser
    assert not md.rawsource.startswith('*Hello world*.')
    assert not md.rawsource.endswith('*Good-bye world*.\n')
예제 #16
0
파일: test_intl.py 프로젝트: ezc/sphinx-1
def test_image_glob_intl(app):
    app.build()
    # index.rst
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())

    assert_node(doctree[0][1],
                nodes.image,
                uri='rimg.xx.png',
                candidates={'*': 'rimg.xx.png'})

    assert isinstance(doctree[0][2], nodes.figure)
    assert_node(doctree[0][2][0],
                nodes.image,
                uri='rimg.xx.png',
                candidates={'*': 'rimg.xx.png'})

    assert_node(doctree[0][3],
                nodes.image,
                uri='img.*',
                candidates={
                    'application/pdf': 'img.pdf',
                    'image/gif': 'img.gif',
                    'image/png': 'img.png'
                })

    assert isinstance(doctree[0][4], nodes.figure)
    assert_node(doctree[0][4][0],
                nodes.image,
                uri='img.*',
                candidates={
                    'application/pdf': 'img.pdf',
                    'image/gif': 'img.gif',
                    'image/png': 'img.png'
                })

    # subdir/index.rst
    doctree = pickle.loads((app.doctreedir / 'subdir/index.doctree').bytes())

    assert_node(doctree[0][1],
                nodes.image,
                uri='subdir/rimg.xx.png',
                candidates={'*': 'subdir/rimg.xx.png'})

    assert_node(doctree[0][2],
                nodes.image,
                uri='subdir/svgimg.*',
                candidates={
                    'application/pdf': 'subdir/svgimg.pdf',
                    'image/svg+xml': 'subdir/svgimg.xx.svg'
                })

    assert isinstance(doctree[0][3], nodes.figure)
    assert_node(doctree[0][3][0],
                nodes.image,
                uri='subdir/svgimg.*',
                candidates={
                    'application/pdf': 'subdir/svgimg.pdf',
                    'image/svg+xml': 'subdir/svgimg.xx.svg'
                })
예제 #17
0
파일: test_intl.py 프로젝트: TimKam/sphinx
def test_image_glob_intl_using_figure_language_filename(app, status, warning):
    app.builder.build_all()

    # index.rst
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())

    assert_node(doctree[0][1], nodes.image, uri='rimg.png.xx',
                candidates={'*': 'rimg.png.xx'})

    assert isinstance(doctree[0][2], nodes.figure)
    assert_node(doctree[0][2][0], nodes.image, uri='rimg.png.xx',
                candidates={'*': 'rimg.png.xx'})

    assert_node(doctree[0][3], nodes.image, uri='img.*',
                candidates={'application/pdf': 'img.pdf',
                            'image/gif': 'img.gif',
                            'image/png': 'img.png'})

    assert isinstance(doctree[0][4], nodes.figure)
    assert_node(doctree[0][4][0], nodes.image, uri='img.*',
                candidates={'application/pdf': 'img.pdf',
                            'image/gif': 'img.gif',
                            'image/png': 'img.png'})

    # subdir/index.rst
    doctree = pickle.loads((app.doctreedir / 'subdir/index.doctree').bytes())

    assert_node(doctree[0][1], nodes.image, uri='subdir/rimg.png',
                candidates={'*': 'subdir/rimg.png'})

    assert_node(doctree[0][2], nodes.image, uri='subdir/svgimg.*',
                candidates={'application/pdf': 'subdir/svgimg.pdf',
                            'image/svg+xml': 'subdir/svgimg.svg'})

    assert isinstance(doctree[0][3], nodes.figure)
    assert_node(doctree[0][3][0], nodes.image, uri='subdir/svgimg.*',
                candidates={'application/pdf': 'subdir/svgimg.pdf',
                            'image/svg+xml': 'subdir/svgimg.svg'})
예제 #18
0
def test_get_toctree_for_includehidden(app):
    app.build()
    toctree = app.env.get_toctree_for('index',
                                      app.builder,
                                      collapse=False,
                                      includehidden=False)
    assert_node(toctree, [
        compact_paragraph,
        ([caption, "Table of Contents"], bullet_list, bullet_list)
    ])

    assert_node(
        toctree[1],
        ([list_item, ([compact_paragraph, reference, "foo"], bullet_list)
          ], [list_item, compact_paragraph, reference, "bar"],
         [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"]))
    assert_node(toctree[1][0][1],
                ([list_item, compact_paragraph, reference, "quux"], [
                    list_item, compact_paragraph, reference, "foo.1"
                ], [list_item, compact_paragraph, reference, "foo.2"]))

    assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=(1, ))
    assert_node(toctree[1][0][1][0][0][0],
                reference,
                refuri="quux",
                secnumber=(1, 1))
    assert_node(toctree[1][0][1][1][0][0],
                reference,
                refuri="foo#foo-1",
                secnumber=(1, 2))
    assert_node(toctree[1][0][1][2][0][0],
                reference,
                refuri="foo#foo-2",
                secnumber=(1, 3))
    assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=(2, ))
    assert_node(toctree[1][2][0][0],
                reference,
                refuri="http://sphinx-doc.org/")

    assert_node(toctree[2],
                [bullet_list, list_item, compact_paragraph, reference, "baz"])
예제 #19
0
파일: test_intl.py 프로젝트: nwf/sphinx
def test_image_glob_intl(app):
    app.build()
    # index.rst
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())

    assert_node(doctree[0][1], nodes.image, uri='rimg.xx.png',
                candidates={'*': 'rimg.xx.png'})

    assert isinstance(doctree[0][2], nodes.figure)
    assert_node(doctree[0][2][0], nodes.image, uri='rimg.xx.png',
                candidates={'*': 'rimg.xx.png'})

    assert_node(doctree[0][3], nodes.image, uri='img.*',
                candidates={'application/pdf': 'img.pdf',
                            'image/gif': 'img.gif',
                            'image/png': 'img.png'})

    assert isinstance(doctree[0][4], nodes.figure)
    assert_node(doctree[0][4][0], nodes.image, uri='img.*',
                candidates={'application/pdf': 'img.pdf',
                            'image/gif': 'img.gif',
                            'image/png': 'img.png'})

    # subdir/index.rst
    doctree = pickle.loads((app.doctreedir / 'subdir/index.doctree').bytes())

    assert_node(doctree[0][1], nodes.image, uri='subdir/rimg.xx.png',
                candidates={'*': 'subdir/rimg.xx.png'})

    assert_node(doctree[0][2], nodes.image, uri='subdir/svgimg.*',
                candidates={'application/pdf': 'subdir/svgimg.pdf',
                            'image/svg+xml': 'subdir/svgimg.xx.svg'})

    assert isinstance(doctree[0][3], nodes.figure)
    assert_node(doctree[0][3][0], nodes.image, uri='subdir/svgimg.*',
                candidates={'application/pdf': 'subdir/svgimg.pdf',
                            'image/svg+xml': 'subdir/svgimg.xx.svg'})
예제 #20
0
def test_process_doc(app):
    app.build()
    # tocs
    toctree = app.env.tocs['index']
    assert_node(
        toctree,
        [
            bullet_list,
            (
                [
                    list_item,
                    (
                        compact_paragraph,  # [0][0]
                        [
                            bullet_list,
                            (
                                addnodes.toctree,  # [0][1][0]
                                only,  # [0][1][1]
                                list_item)
                        ])
                ],  # [0][1][2]
                [
                    list_item,
                    (
                        compact_paragraph,  # [1][0]
                        [
                            bullet_list,
                            (
                                addnodes.toctree,  # [1][1][0]
                                addnodes.toctree)
                        ])
                ],  # [1][1][1]
                list_item)
        ])

    assert_node(toctree[0][0], [
        compact_paragraph, reference,
        "Welcome to Sphinx Tests's documentation!"
    ])
    assert_node(toctree[0][0][0], reference, anchorname='')
    assert_node(toctree[0][1][0],
                addnodes.toctree,
                caption="Table of Contents",
                glob=False,
                hidden=False,
                titlesonly=False,
                maxdepth=2,
                numbered=999,
                entries=[(None, 'foo'), (None, 'bar'),
                         (None, 'http://sphinx-doc.org/')],
                includefiles=['foo', 'bar'])

    # only branch
    assert_node(toctree[0][1][1], addnodes.only, expr="html")
    assert_node(toctree[0][1][1], [
        only, list_item,
        ([compact_paragraph, reference, "Section for HTML"
          ], [bullet_list, addnodes.toctree])
    ])
    assert_node(toctree[0][1][1][0][0][0],
                reference,
                anchorname='#section-for-html')
    assert_node(toctree[0][1][1][0][1][0],
                addnodes.toctree,
                caption=None,
                glob=False,
                hidden=False,
                entries=[(None, 'baz')],
                includefiles=['baz'],
                titlesonly=False,
                maxdepth=-1,
                numbered=0)
    assert_node(toctree[0][1][2], ([
        compact_paragraph, reference, "subsection"
    ], [bullet_list, list_item, compact_paragraph, reference, "subsubsection"
        ]))

    assert_node(toctree[1][0],
                [compact_paragraph, reference, "Test for issue #1157"])
    assert_node(toctree[1][0][0], reference, anchorname='#test-for-issue-1157')
    assert_node(toctree[1][1][0],
                addnodes.toctree,
                caption=None,
                entries=[],
                glob=False,
                hidden=False,
                titlesonly=False,
                maxdepth=-1,
                numbered=0)
    assert_node(toctree[1][1][1],
                addnodes.toctree,
                caption=None,
                glob=False,
                hidden=True,
                titlesonly=False,
                maxdepth=-1,
                numbered=0,
                entries=[('Latest reference', 'http://sphinx-doc.org/latest/'),
                         ('Python', 'http://python.org/')])

    assert_node(toctree[2][0],
                [compact_paragraph, reference, "Indices and tables"])

    # other collections
    assert app.env.toc_num_entries['index'] == 6
    assert app.env.toctree_includes['index'] == ['foo', 'bar', 'baz']
    assert app.env.files_to_rebuild['foo'] == set(['index'])
    assert app.env.files_to_rebuild['bar'] == set(['index'])
    assert app.env.files_to_rebuild['baz'] == set(['index'])
    assert app.env.glob_toctrees == set()
    assert app.env.numbered_toctrees == set(['index'])

    # qux has no section title
    assert len(app.env.tocs['qux']) == 0
    assert_node(app.env.tocs['qux'], nodes.bullet_list)
    assert app.env.toc_num_entries['qux'] == 0
    assert 'qux' not in app.env.toctree_includes
예제 #21
0
def test_get_toctree_for_collapse(app):
    app.build()
    toctree = app.env.get_toctree_for('index', app.builder, collapse=True)
    assert_node(toctree, [
        compact_paragraph,
        ([caption, "Table of Contents"], bullet_list, bullet_list, bullet_list)
    ])

    assert_node(
        toctree[1],
        ([list_item, compact_paragraph, reference, "foo"
          ], [list_item, compact_paragraph, reference, "bar"],
         [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"]))
    assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=(1, ))
    assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=(2, ))
    assert_node(toctree[1][2][0][0],
                reference,
                refuri="http://sphinx-doc.org/")

    assert_node(toctree[2],
                [bullet_list, list_item, compact_paragraph, reference, "baz"])
    assert_node(toctree[3],
                ([list_item, compact_paragraph, reference, "Latest reference"
                  ], [list_item, compact_paragraph, reference, "Python"]))
    assert_node(toctree[3][0][0][0],
                reference,
                refuri="http://sphinx-doc.org/latest/")
    assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
def _test_get_toctree_for_maxdepth(app):
    toctree = app.env.get_toctree_for('index',
                                      app.builder,
                                      collapse=False,
                                      maxdepth=3)
    assert_node(toctree, [
        compact_paragraph,
        ([caption, "Table of Contents"], bullet_list, bullet_list, bullet_list)
    ])

    assert_node(
        toctree[1],
        ([list_item, ([compact_paragraph, reference, "foo"], bullet_list)
          ], [list_item, compact_paragraph, reference, "bar"],
         [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"]))
    assert_node(toctree[1][0][1],
                ([list_item, compact_paragraph, reference, "quux"], [
                    list_item,
                    ([compact_paragraph, reference, "foo.1"], bullet_list)
                ], [list_item, compact_paragraph, reference, "foo.2"]))
    assert_node(
        toctree[1][0][1][1][1],
        [bullet_list, list_item, compact_paragraph, reference, "foo.1-1"])

    assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=(1, ))
    assert_node(toctree[1][0][1][0][0][0],
                reference,
                refuri="quux",
                secnumber=(1, 1))
    assert_node(toctree[1][0][1][1][0][0],
                reference,
                refuri="foo#foo-1",
                secnumber=(1, 2))
    assert_node(toctree[1][0][1][1][1][0][0][0],
                reference,
                refuri="foo#foo-1-1",
                secnumber=(1, 2, 1))
    assert_node(toctree[1][0][1][2][0][0],
                reference,
                refuri="foo#foo-2",
                secnumber=(1, 3))
    assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=(2, ))
    assert_node(toctree[1][2][0][0],
                reference,
                refuri="http://sphinx-doc.org/")

    assert_node(toctree[2],
                [bullet_list, list_item, compact_paragraph, reference, "baz"])
    assert_node(toctree[3],
                ([list_item, compact_paragraph, reference, "Latest reference"
                  ], [list_item, compact_paragraph, reference, "Python"]))
    assert_node(toctree[3][0][0][0],
                reference,
                refuri="http://sphinx-doc.org/latest/")
    assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
예제 #23
0
def _test_process_doc(app):
    # tocs
    toctree = app.env.tocs['index']
    assert_node(toctree,
                [bullet_list, ([list_item, (compact_paragraph,  # [0][0]
                                            [bullet_list, (addnodes.toctree,  # [0][1][0]
                                                           only,  # [0][1][1]
                                                           list_item)])],  # [0][1][2]
                               [list_item, (compact_paragraph,  # [1][0]
                                            [bullet_list, (addnodes.toctree,  # [1][1][0]
                                                           addnodes.toctree)])],  # [1][1][1]
                               list_item)])

    assert_node(toctree[0][0],
                [compact_paragraph, reference, "Welcome to Sphinx Tests's documentation!"])
    assert_node(toctree[0][0][0], reference, anchorname='')
    assert_node(toctree[0][1][0], addnodes.toctree,
                caption="Table of Contents", glob=False, hidden=False,
                titlesonly=False, maxdepth=2, numbered=999,
                entries=[(None, 'foo'), (None, 'bar'), (None, 'http://sphinx-doc.org/')],
                includefiles=['foo', 'bar'])

    # only branch
    assert_node(toctree[0][1][1], addnodes.only, expr="html")
    assert_node(toctree[0][1][1],
                [only, list_item, ([compact_paragraph, reference, "Section for HTML"],
                                   [bullet_list, addnodes.toctree])])
    assert_node(toctree[0][1][1][0][0][0], reference, anchorname='#section-for-html')
    assert_node(toctree[0][1][1][0][1][0], addnodes.toctree,
                caption=None, glob=False, hidden=False, entries=[(None, 'baz')],
                includefiles=['baz'], titlesonly=False, maxdepth=-1, numbered=0)
    assert_node(toctree[0][1][2],
                ([compact_paragraph, reference, "subsection"],
                 [bullet_list, list_item, compact_paragraph, reference, "subsubsection"]))

    assert_node(toctree[1][0],
                [compact_paragraph, reference, "Test for issue #1157"])
    assert_node(toctree[1][0][0], reference, anchorname='#test-for-issue-1157')
    assert_node(toctree[1][1][0], addnodes.toctree,
                caption=None, entries=[], glob=False, hidden=False,
                titlesonly=False, maxdepth=-1, numbered=0)
    assert_node(toctree[1][1][1], addnodes.toctree,
                caption=None, glob=False, hidden=True,
                titlesonly=False, maxdepth=-1, numbered=0,
                entries=[('Latest reference', 'http://sphinx-doc.org/latest/'),
                         ('Python', 'http://python.org/')])

    assert_node(toctree[2][0],
                [compact_paragraph, reference, "Indices and tables"])

    # other collections
    assert app.env.toc_num_entries['index'] == 6
    assert app.env.toctree_includes['index'] == ['foo', 'bar', 'baz']
    assert app.env.files_to_rebuild['foo'] == set(['index'])
    assert app.env.files_to_rebuild['bar'] == set(['index'])
    assert app.env.files_to_rebuild['baz'] == set(['index'])
    assert app.env.glob_toctrees == set()
    assert app.env.numbered_toctrees == set(['index'])

    # qux has no section title
    assert len(app.env.tocs['qux']) == 0
    assert_node(app.env.tocs['qux'], nodes.bullet_list)
    assert app.env.toc_num_entries['qux'] == 0
    assert 'qux' not in app.env.toctree_includes
예제 #24
0
def test_rst_prolog(app, status, warning):
    app.builder.build_all()
    rst = pickle.loads((app.doctreedir / 'restructuredtext.doctree').bytes())
    md = pickle.loads((app.doctreedir / 'markdown.doctree').bytes())

    # rst_prolog
    assert_node(rst[0], nodes.paragraph)
    assert_node(rst[0][0], nodes.emphasis)
    assert_node(rst[0][0][0], nodes.Text)
    assert rst[0][0][0] == 'Hello world'

    # rst_epilog
    assert_node(rst[-1], nodes.section)
    assert_node(rst[-1][-1], nodes.paragraph)
    assert_node(rst[-1][-1][0], nodes.emphasis)
    assert_node(rst[-1][-1][0][0], nodes.Text)
    assert rst[-1][-1][0][0] == 'Good-bye world'

    # rst_prolog & rst_epilog on exlucding reST parser
    assert not md.rawsource.startswith('*Hello world*.')
    assert not md.rawsource.endswith('*Good-bye world*.\n')
예제 #25
0
def _test_get_toctree_for_collapse(app):
    toctree = app.env.get_toctree_for('index', app.builder, collapse=True)
    assert_node(toctree,
                [compact_paragraph, ([caption, "Table of Contents"],
                                     bullet_list,
                                     bullet_list,
                                     bullet_list)])

    assert_node(toctree[1],
                ([list_item, compact_paragraph, reference, "foo"],
                 [list_item, compact_paragraph, reference, "bar"],
                 [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"]))
    assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=(1,))
    assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=(2,))
    assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")

    assert_node(toctree[2],
                [bullet_list, list_item, compact_paragraph, reference, "baz"])
    assert_node(toctree[3],
                ([list_item, compact_paragraph, reference, "Latest reference"],
                 [list_item, compact_paragraph, reference, "Python"]))
    assert_node(toctree[3][0][0][0], reference, refuri="http://sphinx-doc.org/latest/")
    assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
예제 #26
0
def test_keep_warnings_is_False(app, status, warning):
    app.builder.build_all()
    doctree = pickle.loads((app.doctreedir / 'index.doctree').bytes())
    assert_node(doctree[0], nodes.section)
    assert len(doctree[0]) == 1