Commits

Takayuki Shimizukawa  committed 2365789

use test generator nosetests feature.

  • Participants
  • Parent commits 0a40b41
  • Branches stable

Comments (0)

Files changed (2)

File tests/test_build.py

     :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
+
+
+builder_names = ['pickle', 'json', 'linkcheck', 'text', 'htmlhelp', 'qthelp',
+                 'epub', 'changes', 'singlehtml', 'xml', 'pseudoxml']
+
 
 def teardown_module():
     (test_root / '_build').rmtree(True)
 
-# just let the remaining ones run for now
 
-@with_app(buildername='pickle')
-def test_pickle(app):
+def test_build():
+    for buildername in builder_names:
+        app = TestApp(buildername=buildername)
+        yield lambda app: app.builder.build_all(), app
+        app.cleanup()
+
+
+@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='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()
-
-@with_app(buildername='htmlhelp')
-def test_htmlhelp(app):
-    app.builder.build_all()
-
-@with_app(buildername='qthelp')
-def test_qthelp(app):
-    app.builder.build_all()
-
-@with_app(buildername='epub')
-def test_epub(app):
-    app.builder.build_all()
-
-@with_app(buildername='changes')
-def test_changes(app):
-    app.builder.build_all()
-
-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):
-    app.builder.build_all()
-
-@with_app(buildername='pseudoxml')
-def test_pseudoxml(app):
-    app.builder.build_all()
 
 @with_app(buildername='html', srcdir='(temp)')
 def test_nonascii_path(app):

File tests/util.py

         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):
     """