summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_build.py69
-rw-r--r--tests/util.py3
2 files changed, 22 insertions, 50 deletions
diff --git a/tests/test_build.py b/tests/test_build.py
index 9e857b7b8..f283187c4 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -9,68 +9,37 @@
:license: BSD, see LICENSE for details.
"""
-from util import with_app, test_root, path, SkipTest
+from util import with_app, test_root, path, SkipTest, TestApp
from textwrap import dedent
+try:
+ from docutils.writers.manpage import Writer as ManWriter
+except ImportError:
+ ManWriter = None
-def teardown_module():
- (test_root / '_build').rmtree(True)
-
-# just let the remaining ones run for now
-
-@with_app(buildername='pickle')
-def test_pickle(app):
- app.builder.build_all()
-
-@with_app(buildername='json')
-def test_json(app):
- app.builder.build_all()
-
-@with_app(buildername='linkcheck')
-def test_linkcheck(app):
- app.builder.build_all()
-@with_app(buildername='text')
-def test_text(app):
- app.builder.build_all()
+builder_names = ['pickle', 'json', 'linkcheck', 'text', 'htmlhelp', 'qthelp',
+ 'epub', 'changes', 'singlehtml', 'xml', 'pseudoxml']
-@with_app(buildername='htmlhelp')
-def test_htmlhelp(app):
- app.builder.build_all()
-@with_app(buildername='qthelp')
-def test_qthelp(app):
- app.builder.build_all()
+def teardown_module():
+ (test_root / '_build').rmtree(True)
-@with_app(buildername='epub')
-def test_epub(app):
- app.builder.build_all()
-@with_app(buildername='changes')
-def test_changes(app):
- app.builder.build_all()
+def test_build():
+ for buildername in builder_names:
+ app = TestApp(buildername=buildername)
+ yield lambda app: app.builder.build_all(), app
+ app.cleanup()
-try:
- from docutils.writers.manpage import Writer
-except ImportError:
- pass
-else:
- @with_app(buildername='man')
- def test_man(app):
- app.builder.build_all()
- assert (app.outdir / 'SphinxTests.1').exists()
-
-@with_app(buildername='singlehtml', cleanenv=True)
-def test_singlehtml(app):
- app.builder.build_all()
-@with_app(buildername='xml')
-def test_xml(app):
+@with_app(buildername='man')
+def test_man(app):
+ if ManWriter is None:
+ raise SkipTest('man writer is not available')
app.builder.build_all()
+ assert (app.outdir / 'SphinxTests.1').exists()
-@with_app(buildername='pseudoxml')
-def test_pseudoxml(app):
- app.builder.build_all()
@with_app(buildername='html', srcdir='(temp)')
def test_nonascii_path(app):
diff --git a/tests/util.py b/tests/util.py
index 841875b04..61c9bd0d4 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -186,6 +186,9 @@ class TestApp(application.Sphinx):
for tree in self.cleanup_trees:
shutil.rmtree(tree, True)
+ def __repr__(self):
+ return '<%s buildername=%r>' % (self.__class__.__name__, self.builder.name)
+
def with_app(*args, **kwargs):
"""