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-22 20:38:45 -05:00
import gettext
import os
2024-01-16 20:38:46 -06:00
import sys
from pathlib import Path
from typing import TYPE_CHECKING
2018-08-25 21:28:06 -05:00
import docutils
import pytest
2018-02-19 07:39:14 -06:00
2018-08-25 21:28:06 -05:00
import sphinx
import sphinx.locale
2024-01-16 20:38:46 -06:00
import sphinx.pycode
2024-01-18 17:30:22 -06:00
from sphinx.testing.util import _clean_up_global_state
2017-01-03 07:24:00 -06:00
if TYPE_CHECKING:
from collections.abc import Iterator
def _init_console(
2024-08-11 08:58:56 -05:00
locale_dir: str | None = sphinx.locale._LOCALE_DIR,
catalog: str = 'sphinx',
2024-07-22 20:38:45 -05: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-22 20:38:45 -05:00
return gettext.NullTranslations(), False
sphinx.locale.init_console = _init_console
pytest_plugins = ['sphinx.testing.fixtures']
2017-01-03 07:24:00 -06:00
# Exclude 'roots' dirs for pytest test collector
collect_ignore = ['roots']
os.environ['SPHINX_AUTODOC_RELOAD_MODULES'] = '1'
2017-01-03 07:24:00 -06:00
@pytest.fixture(scope='session')
def rootdir() -> Path:
2024-01-16 20:38:46 -06:00
return Path(__file__).parent.resolve() / 'roots'
def pytest_report_header(config: pytest.Config) -> str:
2024-08-11 08:58:56 -05:00
header = f'libraries: Sphinx-{sphinx.__display_version__}, docutils-{docutils.__version__}'
if hasattr(config, '_tmp_path_factory'):
2024-08-11 08:58:56 -05:00
header += f'\nbase tmp_path: {config._tmp_path_factory.getbasetemp()}'
return header
2024-01-16 20:38:46 -06:00
@pytest.fixture(autouse=True)
def _cleanup_docutils() -> Iterator[None]:
2024-01-16 20:38:46 -06:00
saved_path = sys.path
yield # run the test
sys.path[:] = saved_path
2024-01-18 17:30:22 -06:00
_clean_up_global_state()