diff options
Diffstat (limited to 'tests/test_util_docutils.py')
-rw-r--r-- | tests/test_util_docutils.py | 35 |
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'] |