summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sphinx/websupport/__init__.py5
-rw-r--r--tests/test_websupport.py19
2 files changed, 20 insertions, 4 deletions
diff --git a/sphinx/websupport/__init__.py b/sphinx/websupport/__init__.py
index 6c2920708..ae55ee2e8 100644
--- a/sphinx/websupport/__init__.py
+++ b/sphinx/websupport/__init__.py
@@ -22,7 +22,7 @@ from sphinx.application import Sphinx
from sphinx.util.osutil import ensuredir
from sphinx.websupport.search import BaseSearch, search_adapters
from sphinx.websupport.comments import StorageBackend
-from sphinx.websupport.errors import DocumentNotFoundError
+from sphinx.websupport.errors import *
class WebSupportApp(Sphinx):
def __init__(self, *args, **kwargs):
@@ -94,6 +94,9 @@ class WebSupport(object):
build the pickles and search index, placing them into `outdir`.
It will also save node data to the database.
"""
+ if not self.srcdir:
+ raise SrcdirNotSpecifiedError( \
+ 'No srcdir associated with WebSupport object')
doctreedir = path.join(self.outdir, 'doctrees')
app = WebSupportApp(self.srcdir, self.srcdir,
self.outdir, doctreedir, 'websupport',
diff --git a/tests/test_websupport.py b/tests/test_websupport.py
index 80a4affed..b8884bf91 100644
--- a/tests/test_websupport.py
+++ b/tests/test_websupport.py
@@ -13,7 +13,7 @@ import os
from StringIO import StringIO
from sphinx.websupport import WebSupport
-from sphinx.websupport.errors import DocumentNotFoundError
+from sphinx.websupport.errors import *
try:
from functools import wraps
@@ -23,13 +23,14 @@ except ImportError:
from util import *
+
def teardown_module():
(test_root / 'websupport').rmtree(True)
+
def with_support(*args, **kwargs):
"""Make a WebSupport object and pass it the test."""
- settings = {'srcdir': test_root,
- 'outdir': os.path.join(test_root, 'websupport'),
+ settings = {'outdir': os.path.join(test_root, 'websupport'),
'status': StringIO(),
'warning': StringIO()}
settings.update(kwargs)
@@ -42,8 +43,20 @@ def with_support(*args, **kwargs):
return new_func
return generator
+
@with_support()
+def test_no_srcdir(support):
+ """Make sure the correct exception is raised if srcdir is not given."""
+ raises(SrcdirNotSpecifiedError, support.build)
+
+@with_support(srcdir=test_root)
def test_build(support):
support.build()
+
+@with_support()
+def test_get_document(support):
raises(DocumentNotFoundError, support.get_document, 'nonexisting')
+ contents = support.get_document('contents')
+ assert contents['title'] and contents['body'] \
+ and contents['sidebar'] and contents['relbar']