diff options
author | Georg Brandl <georg@python.org> | 2008-07-18 22:55:36 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-07-18 22:55:36 +0000 |
commit | ae2570c2690d7332f843f0e00ec0e8e2ba816bd7 (patch) | |
tree | 1dc24530c825039c6e2c0cfe649847b274241a56 /tests/test_quickstart.py | |
parent | 7cf390aa9b7cfa39ccfdd30d907256bb996dd757 (diff) | |
download | sphinx-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.py | 144 |
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() |