Files
sphinx/tests/conftest.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

63 lines
1.5 KiB
Python
Raw Normal View History

from __future__ import annotations
2024-07-23 02:38:45 +01:00
import gettext
import os
2024-01-17 02:38:46 +00:00
import sys
from pathlib import Path
from typing import TYPE_CHECKING
2018-08-26 11:28:06 +09:00
import docutils
import pytest
2018-02-19 22:39:14 +09:00
2018-08-26 11:28:06 +09:00
import sphinx
import sphinx.locale
2024-01-17 02:38:46 +00:00
import sphinx.pycode
2024-01-18 23:30:22 +00:00
from sphinx.testing.util import _clean_up_global_state
2017-01-03 22:24:00 +09:00
if TYPE_CHECKING:
from collections.abc import Iterator
def _init_console(
2024-08-11 14:58:56 +01:00
locale_dir: str | None = sphinx.locale._LOCALE_DIR,
catalog: str = 'sphinx',
2024-07-23 02:38:45 +01:00
) -> tuple[gettext.NullTranslations, bool]:
"""Monkeypatch ``init_console`` to skip its action.
Some tests rely on warning messages in English. We don't want
CLI tests to bleed over those tests and make their warnings
translated.
"""
2024-07-23 02:38:45 +01:00
return gettext.NullTranslations(), False
sphinx.locale.init_console = _init_console
pytest_plugins = ['sphinx.testing.fixtures']
2017-01-03 22:24:00 +09:00
# Exclude 'roots' dirs for pytest test collector
collect_ignore = ['roots']
os.environ['SPHINX_AUTODOC_RELOAD_MODULES'] = '1'
2017-01-03 22:24:00 +09:00
@pytest.fixture(scope='session')
def rootdir() -> Path:
2024-01-17 02:38:46 +00:00
return Path(__file__).parent.resolve() / 'roots'
def pytest_report_header(config: pytest.Config) -> str:
2024-08-11 14:58:56 +01:00
header = f'libraries: Sphinx-{sphinx.__display_version__}, docutils-{docutils.__version__}'
if hasattr(config, '_tmp_path_factory'):
2024-08-11 14:58:56 +01:00
header += f'\nbase tmp_path: {config._tmp_path_factory.getbasetemp()}'
return header
2024-01-17 02:38:46 +00:00
@pytest.fixture(autouse=True)
def _cleanup_docutils() -> Iterator[None]:
2024-01-17 02:38:46 +00:00
saved_path = sys.path
yield # run the test
sys.path[:] = saved_path
2024-01-18 23:30:22 +00:00
_clean_up_global_state()