summaryrefslogtreecommitdiff
path: root/tests/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/conftest.py')
-rw-r--r--tests/conftest.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index 4de67c7d6..6cb239d9f 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -8,13 +8,55 @@
"""
import os
+import shutil
+import sys
+import warnings
import pytest
from sphinx.testing.path import path
pytest_plugins = 'sphinx.testing.fixtures'
+# Exclude 'roots' dirs for pytest test collector
+collect_ignore = ['roots']
+
+# Disable Python version-specific
+if sys.version_info < (3, 5):
+ collect_ignore += ['py35']
+
@pytest.fixture(scope='session')
def rootdir():
return path(os.path.dirname(__file__) or '.').abspath() / 'roots'
+
+
+def pytest_report_header(config):
+ return 'Running Sphinx test suite (with Python %s)...' % (
+ sys.version.split()[0])
+
+
+def _filter_warnings():
+ def ignore(**kwargs): warnings.filterwarnings('ignore', **kwargs)
+
+ ignore(category=DeprecationWarning, module='site') # virtualenv
+ ignore(category=PendingDeprecationWarning, module=r'_pytest\..*')
+ ignore(category=ImportWarning, module='pkgutil')
+
+
+def _initialize_test_directory(session):
+ testroot = os.path.join(str(session.config.rootdir), 'tests')
+ tempdir = os.path.abspath(os.getenv('SPHINX_TEST_TEMPDIR',
+ os.path.join(testroot, 'build')))
+ os.environ['SPHINX_TEST_TEMPDIR'] = tempdir
+
+ print('Temporary files will be placed in %s.' % tempdir)
+
+ if os.path.exists(tempdir):
+ shutil.rmtree(tempdir)
+
+ os.makedirs(tempdir)
+
+
+def pytest_sessionstart(session):
+ _filter_warnings()
+ _initialize_test_directory(session)