2008-06-05 03:58:43 -05:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
|
|
Sphinx unit test driver
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
This script runs the Sphinx unit test suite.
|
|
|
|
|
2014-03-01 01:18:16 -06:00
|
|
|
:copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
2009-01-03 04:57:07 -06:00
|
|
|
:license: BSD, see LICENSE for details.
|
2008-06-05 03:58:43 -05:00
|
|
|
"""
|
2014-01-19 04:17:10 -06:00
|
|
|
from __future__ import print_function
|
2008-06-05 03:58:43 -05:00
|
|
|
|
|
|
|
import sys
|
2012-05-01 01:21:12 -05:00
|
|
|
from os import path, chdir, listdir, environ
|
2013-07-27 02:15:36 -05:00
|
|
|
import shutil
|
|
|
|
|
|
|
|
testroot = path.dirname(__file__) or '.'
|
|
|
|
if 'BUILD_TEST_PATH' in environ:
|
|
|
|
# for tox testing
|
|
|
|
newroot = environ['BUILD_TEST_PATH']
|
|
|
|
# tox installs the sphinx package, no need for sys.path.insert
|
|
|
|
else:
|
|
|
|
newroot = path.join(testroot, path.pardir, 'build')
|
|
|
|
newroot = path.join(newroot, listdir(newroot)[0], 'tests')
|
|
|
|
|
|
|
|
shutil.rmtree(newroot, ignore_errors=True)
|
2010-05-08 17:38:16 -05:00
|
|
|
|
2010-07-28 12:36:57 -05:00
|
|
|
if sys.version_info >= (3, 0):
|
2010-06-12 08:16:57 -05:00
|
|
|
print('Copying and converting sources to build/lib/tests...')
|
2010-05-08 17:38:16 -05:00
|
|
|
from distutils.util import copydir_run_2to3
|
|
|
|
copydir_run_2to3(testroot, newroot)
|
2012-03-10 11:29:23 -06:00
|
|
|
else:
|
2013-07-27 02:15:36 -05:00
|
|
|
# just copying test directory to parallel testing
|
|
|
|
print('Copying sources to build/lib/tests...')
|
|
|
|
shutil.copytree(testroot, newroot)
|
|
|
|
|
|
|
|
# always test the sphinx package from build/lib/
|
|
|
|
sys.path.insert(0, path.abspath(path.join(newroot, path.pardir)))
|
|
|
|
# switch to the copy/converted dir so nose tests the right tests
|
|
|
|
chdir(newroot)
|
2008-06-05 03:58:43 -05:00
|
|
|
|
|
|
|
try:
|
|
|
|
import nose
|
|
|
|
except ImportError:
|
2011-05-15 04:15:20 -05:00
|
|
|
print('The nose package is needed to run the Sphinx test suite.')
|
2008-06-05 03:58:43 -05:00
|
|
|
sys.exit(1)
|
|
|
|
|
2011-04-12 17:54:14 -05:00
|
|
|
try:
|
|
|
|
import docutils
|
|
|
|
except ImportError:
|
2011-05-15 04:15:20 -05:00
|
|
|
print('Sphinx requires the docutils package to be installed.')
|
2011-04-12 17:54:14 -05:00
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
try:
|
|
|
|
import jinja2
|
|
|
|
except ImportError:
|
2011-05-15 04:15:20 -05:00
|
|
|
print('Sphinx requires the jinja2 package to be installed.')
|
2011-04-12 17:54:14 -05:00
|
|
|
sys.exit(1)
|
|
|
|
|
2011-05-15 04:15:20 -05:00
|
|
|
print('Running Sphinx test suite...')
|
2008-06-05 03:58:43 -05:00
|
|
|
nose.main()
|