summaryrefslogtreecommitdiff
path: root/tests/test_transforms_post_transforms.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2021-05-18 01:09:42 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2021-05-18 01:55:36 +0900
commit2d3d668856e518203200e95b8b64788c98d39d9a (patch)
tree0014064043c4044a503df9d84ef387953bedbe21 /tests/test_transforms_post_transforms.py
parent630e5bd15f43c6cd91e61723f40b6c94ef622060 (diff)
downloadsphinx-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.py58
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