diff --git a/tests/test_env_read_docs.py b/tests/test_env_read_docs.py new file mode 100644 index 000000000..0b57815bd --- /dev/null +++ b/tests/test_env_read_docs.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +""" + test_env_read_docs + ~~~~~~~~~~~~~~~~~~ + + Test docnames read order modification using the env-read-docs event. + + :copyright: Copyright 2014 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import pickle + +from docutils.parsers.rst.directives.html import MetaBody + +from sphinx import addnodes +from sphinx.versioning import add_uids, merge_doctrees, get_ratio + +from util import test_root, TestApp + +def setup_module(): + pass + +def test_default_docnames_order(): + """By default, docnames are read in alphanumeric order""" + def on_env_read_docs(app, env, docnames): + return docnames + + app = TestApp(srcdir='(temp)', freshenv=True) + env = app.env + app.connect('env-read-docs', on_env_read_docs) + + msg, num, it = env.update(app.config, app.srcdir, app.doctreedir, app) + read_docnames = [docname for docname in it] + assert len(read_docnames) > 1 and read_docnames == sorted(read_docnames) + +def test_inverse_docnames_order(): + """By default, docnames are read in alphanumeric order""" + def on_env_read_docs(app, env, docnames): + docnames.reverse() + return docnames + + app = TestApp(srcdir='(temp)', freshenv=True) + env = app.env + app.connect('env-read-docs', on_env_read_docs) + + msg, num, it = env.update(app.config, app.srcdir, app.doctreedir, app) + read_docnames = [docname for docname in it] + reversed_read_docnames = sorted(read_docnames)[:] + reversed_read_docnames.reverse() + assert len(read_docnames) > 1 and read_docnames == reversed_read_docnames + +def teardown_module(): + (test_root / '_build').rmtree(True)