diff options
Diffstat (limited to 'tests/test_domain_py.py')
-rw-r--r-- | tests/test_domain_py.py | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/tests/test_domain_py.py b/tests/test_domain_py.py index 3ff29cbb7..f78c1e9d8 100644 --- a/tests/test_domain_py.py +++ b/tests/test_domain_py.py @@ -105,19 +105,22 @@ def test_domain_py_xrefs(app, status, warning): 'mod_child_2', 'meth') assert_refnode(refnodes[4], 'module_a.submodule', 'ModTopLevel', 'module_a.submodule.ModTopLevel.mod_child_1', 'meth') - assert_refnode(refnodes[5], 'module_b.submodule', None, + assert_refnode(refnodes[5], 'module_a.submodule', 'ModTopLevel', + 'prop', 'attr') + assert_refnode(refnodes[6], 'module_a.submodule', 'ModTopLevel', + 'prop', 'meth') + assert_refnode(refnodes[7], 'module_b.submodule', None, 'ModTopLevel', 'class') - assert_refnode(refnodes[6], 'module_b.submodule', 'ModTopLevel', + assert_refnode(refnodes[8], 'module_b.submodule', 'ModTopLevel', 'ModNoModule', 'class') - assert_refnode(refnodes[7], False, False, 'int', 'class') - assert_refnode(refnodes[8], False, False, 'tuple', 'class') - assert_refnode(refnodes[9], False, False, 'str', 'class') - assert_refnode(refnodes[10], False, False, 'float', 'class') - assert_refnode(refnodes[11], False, False, 'list', 'class') - assert_refnode(refnodes[11], False, False, 'list', 'class') - assert_refnode(refnodes[12], False, False, 'ModTopLevel', 'class') - assert_refnode(refnodes[13], False, False, 'index', 'doc', domain='std') - assert len(refnodes) == 14 + assert_refnode(refnodes[9], False, False, 'int', 'class') + assert_refnode(refnodes[10], False, False, 'tuple', 'class') + assert_refnode(refnodes[11], False, False, 'str', 'class') + assert_refnode(refnodes[12], False, False, 'float', 'class') + assert_refnode(refnodes[13], False, False, 'list', 'class') + assert_refnode(refnodes[14], False, False, 'ModTopLevel', 'class') + assert_refnode(refnodes[15], False, False, 'index', 'doc', domain='std') + assert len(refnodes) == 16 doctree = app.env.get_doctree('module_option') refnodes = list(doctree.traverse(addnodes.pending_xref)) @@ -161,6 +164,21 @@ def test_domain_py_objects(app, status, warning): assert objects['NestedParentB.child_1'] == ('roles', 'method') +@pytest.mark.sphinx('html', testroot='domain-py') +def test_resolve_xref_for_properties(app, status, warning): + app.builder.build_all() + + content = (app.outdir / 'module.html').text() + assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"' + ' title="module_a.submodule.ModTopLevel.prop">' + '<code class="xref py py-attr docutils literal notranslate"><span class="pre">' + 'prop</span> <span class="pre">attribute</span></code></a>' in content) + assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"' + ' title="module_a.submodule.ModTopLevel.prop">' + '<code class="xref py py-meth docutils literal notranslate"><span class="pre">' + 'prop</span> <span class="pre">method</span></code></a>' in content) + + @pytest.mark.sphinx('dummy', testroot='domain-py') def test_domain_py_find_obj(app, status, warning): @@ -268,6 +286,20 @@ def test_exceptions_module_is_ignored(app): def test_pydata_signature(app): text = (".. py:data:: version\n" + " :type: int\n" + " :value: 1\n") + doctree = restructuredtext.parse(app, text) + assert_node(doctree, (addnodes.index, + [desc, ([desc_signature, ([desc_name, "version"], + [desc_annotation, ": int"], + [desc_annotation, " = 1"])], + desc_content)])) + assert_node(doctree[1], addnodes.desc, desctype="data", + domain="py", objtype="data", noindex=False) + + +def test_pydata_signature_old(app): + text = (".. py:data:: version\n" " :annotation: = 1\n") doctree = restructuredtext.parse(app, text) assert_node(doctree, (addnodes.index, @@ -463,7 +495,9 @@ def test_pystaticmethod(app): def test_pyattribute(app): text = (".. py:class:: Class\n" "\n" - " .. py:attribute:: attr\n") + " .. py:attribute:: attr\n" + " :type: str\n" + " :value: ''\n") domain = app.env.get_domain('py') doctree = restructuredtext.parse(app, text) assert_node(doctree, (addnodes.index, @@ -473,7 +507,9 @@ def test_pyattribute(app): desc)])])) assert_node(doctree[1][1][0], addnodes.index, entries=[('single', 'attr (Class attribute)', 'Class.attr', '', None)]) - assert_node(doctree[1][1][1], ([desc_signature, desc_name, "attr"], + assert_node(doctree[1][1][1], ([desc_signature, ([desc_name, "attr"], + [desc_annotation, ": str"], + [desc_annotation, " = ''"])], [desc_content, ()])) assert 'Class.attr' in domain.objects assert domain.objects['Class.attr'] == ('index', 'attribute') |