summaryrefslogtreecommitdiff
path: root/tests/test_quickstart.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-07-18 22:55:36 +0000
committerGeorg Brandl <georg@python.org>2008-07-18 22:55:36 +0000
commitae2570c2690d7332f843f0e00ec0e8e2ba816bd7 (patch)
tree1dc24530c825039c6e2c0cfe649847b274241a56 /tests/test_quickstart.py
parent7cf390aa9b7cfa39ccfdd30d907256bb996dd757 (diff)
downloadsphinx-git-ae2570c2690d7332f843f0e00ec0e8e2ba816bd7.tar.gz
Merged revisions 64808,65013,65076,65100-65101,65119,65121-65123 via svnmerge from
svn+ssh://pythondev@svn.python.org/doctools/branches/0.4.x ........ r64808 | georg.brandl | 2008-07-08 21:39:33 +0200 (Tue, 08 Jul 2008) | 2 lines Allow relocation of source and doctree dir. ........ r65013 | georg.brandl | 2008-07-16 15:25:30 +0200 (Wed, 16 Jul 2008) | 2 lines Remove curious quote. ........ r65076 | georg.brandl | 2008-07-17 22:43:01 +0200 (Thu, 17 Jul 2008) | 2 lines Add a test for sphinx.quickstart. ........ r65100 | georg.brandl | 2008-07-18 14:41:54 +0200 (Fri, 18 Jul 2008) | 2 lines Fix phony targets. ........ r65101 | georg.brandl | 2008-07-18 14:55:03 +0200 (Fri, 18 Jul 2008) | 2 lines Fix problems in "make check". ........ r65119 | georg.brandl | 2008-07-18 23:06:42 +0200 (Fri, 18 Jul 2008) | 2 lines Emit a more precise error message in autodoc. ........ r65121 | georg.brandl | 2008-07-18 23:41:35 +0200 (Fri, 18 Jul 2008) | 2 lines Warn if a toctree-included document doesn't contain a title. ........ r65122 | georg.brandl | 2008-07-18 23:51:28 +0200 (Fri, 18 Jul 2008) | 2 lines Don't use \samp{} for code with whitespaces, only for :samp:`code`. ........ r65123 | georg.brandl | 2008-07-19 00:49:46 +0200 (Sat, 19 Jul 2008) | 2 lines Put inheritance info always on its own line. ........
Diffstat (limited to 'tests/test_quickstart.py')
-rw-r--r--tests/test_quickstart.py144
1 files changed, 144 insertions, 0 deletions
diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py
new file mode 100644
index 000000000..51c9feb1b
--- /dev/null
+++ b/tests/test_quickstart.py
@@ -0,0 +1,144 @@
+# -*- coding: utf-8 -*-
+"""
+ test_quickstart
+ ~~~~~~~~~~~~~~~
+
+ Test the sphinx.quickstart module.
+
+ :copyright: 2008 by Georg Brandl.
+ :license: BSD.
+"""
+
+import sys
+import time
+import __builtin__
+
+from util import *
+
+from sphinx import quickstart as qs
+from sphinx.util.console import nocolor, coloron
+
+def setup_module():
+ nocolor()
+
+def mock_raw_input(answers, needanswer=False):
+ called = set()
+ def raw_input(prompt):
+ if prompt in called:
+ raise AssertionError('answer for %r missing and no default '
+ 'present' % prompt)
+ called.add(prompt)
+ for question in answers:
+ if prompt.startswith(qs.PROMPT_PREFIX + question):
+ return answers[question]
+ if needanswer:
+ raise AssertionError('answer for %r missing' % prompt)
+ return ''
+ return raw_input
+
+def teardown_module():
+ qs.raw_input = __builtin__.raw_input
+ coloron()
+
+
+def test_do_prompt():
+ d = {}
+ answers = {
+ 'Q2': 'v2',
+ 'Q3': 'v3',
+ 'Q4': 'yes',
+ 'Q5': 'no',
+ 'Q6': 'foo',
+ }
+ qs.raw_input = mock_raw_input(answers)
+ try:
+ qs.do_prompt(d, 'k1', 'Q1')
+ except AssertionError:
+ assert 'k1' not in d
+ else:
+ assert False, 'AssertionError not raised'
+ qs.do_prompt(d, 'k1', 'Q1', default='v1')
+ assert d['k1'] == 'v1'
+ qs.do_prompt(d, 'k3', 'Q3', default='v3_default')
+ assert d['k3'] == 'v3'
+ qs.do_prompt(d, 'k2', 'Q2')
+ assert d['k2'] == 'v2'
+ qs.do_prompt(d, 'k4', 'Q4', validator=qs.boolean)
+ assert d['k4'] == 'yes'
+ qs.do_prompt(d, 'k5', 'Q5', validator=qs.boolean)
+ assert d['k5'] == 'no'
+ raises(AssertionError, qs.do_prompt, d, 'k6', 'Q6', validator=qs.boolean)
+
+@with_tempdir
+def test_quickstart_defaults(tempdir):
+ answers = {
+ 'Root path': tempdir,
+ 'Project name': 'Sphinx Test',
+ 'Author name': 'Georg Brandl',
+ 'Project version': '0.1',
+ }
+ qs.raw_input = mock_raw_input(answers)
+ qs.inner_main([])
+
+ conffile = tempdir / 'conf.py'
+ assert conffile.isfile()
+ ns = {}
+ execfile(conffile, ns)
+ assert ns['extensions'] == []
+ assert ns['templates_path'] == ['.templates']
+ assert ns['source_suffix'] == '.rst'
+ assert ns['master_doc'] == 'index'
+ assert ns['project'] == 'Sphinx Test'
+ assert ns['copyright'] == '%s, Georg Brandl' % time.strftime('%Y')
+ assert ns['version'] == '0.1'
+ assert ns['release'] == '0.1'
+ assert ns['html_static_path'] == ['.static']
+ assert ns['latex_documents'] == [
+ ('index', 'SphinxTest.tex', 'Sphinx Test Documentation',
+ 'Georg Brandl', 'manual')]
+
+ assert (tempdir / '.static').isdir()
+ assert (tempdir / '.templates').isdir()
+ assert (tempdir / 'index.rst').isfile()
+ assert (tempdir / 'Makefile').isfile()
+
+@with_tempdir
+def test_quickstart_all_answers(tempdir):
+ answers = {
+ 'Root path': tempdir,
+ 'Separate source and build': 'y',
+ 'Name prefix for templates': '_',
+ 'Project name': 'Sphinx Test',
+ 'Author name': 'Georg Brandl',
+ 'Project version': '0.1',
+ 'Project release': '0.1.1',
+ 'Source file suffix': '.txt',
+ 'Name of your master document': 'contents',
+ 'autodoc': 'y',
+ 'doctest': 'yes',
+ 'Create Makefile': 'no',
+ }
+ qs.raw_input = mock_raw_input(answers, needanswer=True)
+ qs.inner_main([])
+
+ conffile = tempdir / 'source' / 'conf.py'
+ assert conffile.isfile()
+ ns = {}
+ execfile(conffile, ns)
+ assert ns['extensions'] == ['sphinx.ext.autodoc', 'sphinx.ext.doctest']
+ assert ns['templates_path'] == ['_templates']
+ assert ns['source_suffix'] == '.txt'
+ assert ns['master_doc'] == 'contents'
+ assert ns['project'] == 'Sphinx Test'
+ assert ns['copyright'] == '%s, Georg Brandl' % time.strftime('%Y')
+ assert ns['version'] == '0.1'
+ assert ns['release'] == '0.1.1'
+ assert ns['html_static_path'] == ['_static']
+ assert ns['latex_documents'] == [
+ ('contents', 'SphinxTest.tex', 'Sphinx Test Documentation',
+ 'Georg Brandl', 'manual')]
+
+ assert (tempdir / 'build').isdir()
+ assert (tempdir / 'source' / '_static').isdir()
+ assert (tempdir / 'source' / '_templates').isdir()
+ assert (tempdir / 'source' / 'contents.txt').isfile()