summaryrefslogtreecommitdiff
path: root/tests/test_websupport.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_websupport.py')
-rw-r--r--tests/test_websupport.py50
1 files changed, 45 insertions, 5 deletions
diff --git a/tests/test_websupport.py b/tests/test_websupport.py
index b8884bf91..3d61e55c2 100644
--- a/tests/test_websupport.py
+++ b/tests/test_websupport.py
@@ -9,7 +9,7 @@
:license: BSD, see LICENSE for details.
"""
-import os
+import os, sys
from StringIO import StringIO
from sphinx.websupport import WebSupport
@@ -24,15 +24,22 @@ except ImportError:
from util import *
-def teardown_module():
+default_settings = {'outdir': os.path.join(test_root, 'websupport'),
+ 'status': StringIO(),
+ 'warning': StringIO()}
+
+
+def clear_builddir():
(test_root / 'websupport').rmtree(True)
+def teardown_module():
+ clear_builddir()
+
+
def with_support(*args, **kwargs):
"""Make a WebSupport object and pass it the test."""
- settings = {'outdir': os.path.join(test_root, 'websupport'),
- 'status': StringIO(),
- 'warning': StringIO()}
+ settings = default_settings.copy()
settings.update(kwargs)
def generator(func):
@@ -49,10 +56,12 @@ 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')
@@ -60,3 +69,34 @@ def test_get_document(support):
contents = support.get_document('contents')
assert contents['title'] and contents['body'] \
and contents['sidebar'] and contents['relbar']
+
+
+def search_adapter_helper(adapter):
+ clear_builddir()
+
+ settings = default_settings.copy()
+ settings.update({'srcdir': test_root,
+ 'search': adapter})
+ support = WebSupport(**settings)
+
+ support.build()
+
+
+def test_xapian():
+ # Don't run tests if xapian is not installed.
+ try:
+ import xapian
+ search_adapter_helper('xapian')
+ except ImportError:
+ sys.stderr.write('info: not running xapian tests, ' \
+ 'xapian doesn\'t seem to be installed')
+
+
+def test_whoosh():
+ # Don't run tests if xapian is not installed.
+ try:
+ import whoosh
+ search_adapter_helper('whoosh')
+ except ImportError:
+ sys.stderr.write('info: not running xapian tests, ' \
+ 'whoosh doesn\'t seem to be installed')