diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-05-18 01:09:42 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-05-18 01:55:36 +0900 |
commit | 2d3d668856e518203200e95b8b64788c98d39d9a (patch) | |
tree | 0014064043c4044a503df9d84ef387953bedbe21 /tests/test_transforms_post_transforms.py | |
parent | 630e5bd15f43c6cd91e61723f40b6c94ef622060 (diff) | |
download | sphinx-git-2d3d668856e518203200e95b8b64788c98d39d9a.tar.gz |
Fix #9240: Unknown node error for pending_xref_condition is raised
Unknown node error for pending_xref_condition is raised if an extension
that does not support the node installs a missing-reference handler.
Diffstat (limited to 'tests/test_transforms_post_transforms.py')
-rw-r--r-- | tests/test_transforms_post_transforms.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/test_transforms_post_transforms.py b/tests/test_transforms_post_transforms.py new file mode 100644 index 000000000..26af55031 --- /dev/null +++ b/tests/test_transforms_post_transforms.py @@ -0,0 +1,58 @@ +""" + test_transforms_post_transforms + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Tests the post_transforms + + :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import pytest +from docutils import nodes + + +@pytest.mark.sphinx('html', testroot='transforms-post_transforms-missing-reference') +def test_nitpicky_warning(app, status, warning): + app.build() + assert ('index.rst:4: WARNING: py:class reference target ' + 'not found: io.StringIO' in warning.getvalue()) + + content = (app.outdir / 'index.html').read_text() + assert ('<p><code class="xref py py-class docutils literal notranslate"><span class="pre">' + 'io.StringIO</span></code></p>' in content) + + +@pytest.mark.sphinx('html', testroot='transforms-post_transforms-missing-reference', + freshenv=True) +def test_missing_reference(app, status, warning): + def missing_reference(app, env, node, contnode): + assert app is app + assert env is app.env + assert node['reftarget'] == 'io.StringIO' + assert contnode.astext() == 'io.StringIO' + + return nodes.inline('', 'missing-reference.StringIO') + + warning.truncate(0) + app.connect('missing-reference', missing_reference) + app.build() + assert warning.getvalue() == '' + + content = (app.outdir / 'index.html').read_text() + assert '<p><span>missing-reference.StringIO</span></p>' in content + + +@pytest.mark.sphinx('html', testroot='domain-py-python_use_unqualified_type_names', + freshenv=True) +def test_missing_reference_conditional_pending_xref(app, status, warning): + def missing_reference(app, env, node, contnode): + return contnode + + warning.truncate(0) + app.connect('missing-reference', missing_reference) + app.build() + assert warning.getvalue() == '' + + content = (app.outdir / 'index.html').read_text() + assert '<span class="n"><span class="pre">Age</span></span>' in content |