Commits

Jon Waltman committed dcd9e15

Add tests for Texinfo builder

  • Participants
  • Parent commits 6db6c53

Comments (0)

Files changed (3)

File tests/root/conf.py

 
 latex_additional_files = ['svgimg.svg']
 
+texinfo_documents = [
+  ('contents', 'SphinxTests', 'Sphinx Tests',
+   'Georg Brandl \\and someone else', 'Sphinx Testing', 'Miscellaneous'),
+]
+
 value_from_conf_py = 84
 
 coverage_c_path = ['special/*.h']

File tests/test_build_texinfo.py

+# -*- coding: utf-8 -*-
+"""
+    test_build_texinfo
+    ~~~~~~~~~~~~~~~~~~
+
+    Test the build process with Texinfo builder with the test root.
+
+    :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import os
+import sys
+from StringIO import StringIO
+from subprocess import Popen, PIPE
+
+from sphinx.writers.texinfo import TexinfoTranslator
+
+from util import *
+from test_build_html import ENV_WARNINGS
+
+
+def teardown_module():
+    (test_root / '_build').rmtree(True)
+
+
+texinfo_warnfile = StringIO()
+
+if sys.version_info >= (3, 0):
+    TEXINFO_WARNINGS = remove_unicode_literals(TEXINFO_WARNINGS)
+
+
+@with_app(buildername='texinfo', warning=texinfo_warnfile, cleanenv=True)
+def test_texinfo(app):
+    app.builder.build_all()
+    # now, try to run makeinfo over it
+    cwd = os.getcwd()
+    os.chdir(app.outdir)
+    try:
+        try:
+            p = Popen(['makeinfo', '--no-split', 'SphinxTests.texi'],
+                      stdout=PIPE, stderr=PIPE)
+        except OSError:
+            pass  # most likely makeinfo was not found
+        else:
+            stdout, stderr = p.communicate()
+            retcode = p.returncode
+            if retcode != 0:
+                print stdout
+                print stderr
+                del app.cleanup_trees[:]
+                assert False, 'makeinfo exited with return code %s' % retcode
+    finally:
+        os.chdir(cwd)

File tests/test_quickstart.py

     assert ns['man_pages'] == [
         ('contents', 'stasi', u'STASI™ Documentation',
          [u'Wolfgang Schäuble & G\'Beckstein'], 1)]
+    print ns['texinfo_documents']
+    print [('contents', 'STASI', u'STASI™ Documentation',
+            u'Wolfgang Schäuble & G\'Beckstein', 'STASI',
+            'One line description of project.', 'Miscellaneous'),]
+    assert ns['texinfo_documents'] == [
+        ('contents', 'STASI', u'STASI™ Documentation',
+         u'Wolfgang Schäuble & G\'Beckstein', 'STASI',
+         'One line description of project.', 'Miscellaneous'),]
 
     assert (tempdir / 'build').isdir()
     assert (tempdir / 'source' / '.static').isdir()