diff options
Diffstat (limited to 'tests/test_util_docutils.py')
-rw-r--r-- | tests/test_util_docutils.py | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/tests/test_util_docutils.py b/tests/test_util_docutils.py deleted file mode 100644 index 69999eb..0000000 --- a/tests/test_util_docutils.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Tests util.utils functions.""" - -import os - -from docutils import nodes - -from sphinx.util.docutils import ( - SphinxFileOutput, - SphinxTranslator, - docutils_namespace, - new_document, - register_node, -) - - -def test_register_node(): - class custom_node(nodes.Element): - pass - - with docutils_namespace(): - register_node(custom_node) - - # check registered - assert hasattr(nodes.GenericNodeVisitor, 'visit_custom_node') - assert hasattr(nodes.GenericNodeVisitor, 'depart_custom_node') - assert hasattr(nodes.SparseNodeVisitor, 'visit_custom_node') - assert hasattr(nodes.SparseNodeVisitor, 'depart_custom_node') - - # check unregistered outside namespace - assert not hasattr(nodes.GenericNodeVisitor, 'visit_custom_node') - assert not hasattr(nodes.GenericNodeVisitor, 'depart_custom_node') - assert not hasattr(nodes.SparseNodeVisitor, 'visit_custom_node') - assert not hasattr(nodes.SparseNodeVisitor, 'depart_custom_node') - - -def test_SphinxFileOutput(tmpdir): - content = 'Hello Sphinx World' - - # write test.txt at first - filename = str(tmpdir / 'test.txt') - output = SphinxFileOutput(destination_path=filename) - output.write(content) - os.utime(filename, (0, 0)) - - # overwrite it again - output.write(content) - assert os.stat(filename).st_mtime != 0 # updated - - # write test2.txt at first - filename = str(tmpdir / 'test2.txt') - output = SphinxFileOutput(destination_path=filename, overwrite_if_changed=True) - output.write(content) - os.utime(filename, (0, 0)) - - # overwrite it again - output.write(content) - assert os.stat(filename).st_mtime == 0 # not updated - - # overwrite 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'] |