summaryrefslogtreecommitdiff
path: root/tests/test_util_docutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_util_docutils.py')
-rw-r--r--tests/test_util_docutils.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/test_util_docutils.py b/tests/test_util_docutils.py
index c1df3f7ca..a22cf277a 100644
--- a/tests/test_util_docutils.py
+++ b/tests/test_util_docutils.py
@@ -12,7 +12,9 @@ import os
from docutils import nodes
-from sphinx.util.docutils import SphinxFileOutput, docutils_namespace, register_node
+from sphinx.util.docutils import (
+ SphinxFileOutput, SphinxTranslator, docutils_namespace, new_document, register_node
+)
def test_register_node():
@@ -61,3 +63,34 @@ def test_SphinxFileOutput(tmpdir):
# overrite it again (content changed)
output.write(content + "; content change")
assert os.stat(filename).st_mtime != 0 # updated
+
+
+def test_SphinxTranslator(app):
+ class CustomNode(nodes.inline):
+ pass
+
+ class MyTranslator(SphinxTranslator):
+ def __init__(self, *args):
+ self.called = []
+ super().__init__(*args)
+
+ def visit_document(self, node):
+ pass
+
+ def depart_document(self, node):
+ pass
+
+ def visit_inline(self, node):
+ self.called.append('visit_inline')
+
+ def depart_inline(self, node):
+ self.called.append('depart_inline')
+
+ document = new_document('')
+ document += CustomNode()
+
+ translator = MyTranslator(document, app.builder)
+ document.walkabout(translator)
+
+ # MyTranslator does not have visit_CustomNode. But it calls visit_inline instead.
+ assert translator.called == ['visit_inline', 'depart_inline']