diff --git a/CHANGES b/CHANGES index de94a41ee..295754665 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,13 @@ $ pip install --user --upgrade --pre libtmux ### Tests / docs - Examples for pytest plugin (#439) +- Move conftest.py to root level (#440) + + - https://docs.pytest.org/en/stable/deprecations.html#pytest-plugins-in-non-top-level-conftest-files + - Less conftest.py files + - We can now run py.test for `README.md` without needing to proxy through + `docs/index.md` + ## libtmux 0.15.2 (2022-09-17) diff --git a/conftest.py b/conftest.py index c6481d5f7..a728f2f20 100644 --- a/conftest.py +++ b/conftest.py @@ -1 +1,47 @@ +import pathlib +import shutil +import typing as t + +import pytest + +from _pytest.doctest import DoctestItem + +from libtmux.pytest_plugin import USING_ZSH + +if t.TYPE_CHECKING: + from libtmux.session import Session + pytest_plugins = ["pytester"] + + +@pytest.fixture(autouse=True) +def add_doctest_fixtures( + request: pytest.FixtureRequest, + doctest_namespace: t.Dict[str, t.Any], +) -> None: + if isinstance(request._pyfuncitem, DoctestItem) and shutil.which("tmux"): + request.getfixturevalue("set_home") + doctest_namespace["server"] = request.getfixturevalue("server") + session: "Session" = request.getfixturevalue("session") + doctest_namespace["session"] = session + doctest_namespace["window"] = session.attached_window + doctest_namespace["pane"] = session.attached_pane + doctest_namespace["request"] = request + + +@pytest.fixture(autouse=True, scope="function") +def set_home( + monkeypatch: pytest.MonkeyPatch, + user_path: pathlib.Path, +) -> None: + monkeypatch.setenv("HOME", str(user_path)) + + +@pytest.fixture(autouse=True, scope="session") +@pytest.mark.usefixtures("clear_env") +def setup( + request: pytest.FixtureRequest, + config_file: pathlib.Path, +) -> None: + if USING_ZSH: + request.getfixturevalue("zshrc") diff --git a/docs/conftest.py b/docs/conftest.py deleted file mode 100644 index 62571f546..000000000 --- a/docs/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from libtmux.conftest import * # NOQA: F4 diff --git a/src/libtmux/conftest.py b/src/libtmux/conftest.py deleted file mode 100644 index cd01c8ad4..000000000 --- a/src/libtmux/conftest.py +++ /dev/null @@ -1,45 +0,0 @@ -import pathlib -import shutil -import typing as t - -import pytest - -from _pytest.doctest import DoctestItem - -from libtmux.pytest_plugin import USING_ZSH - -if t.TYPE_CHECKING: - from libtmux.session import Session - - -@pytest.fixture(autouse=True) -def add_doctest_fixtures( - request: pytest.FixtureRequest, - doctest_namespace: t.Dict[str, t.Any], -) -> None: - if isinstance(request._pyfuncitem, DoctestItem) and shutil.which("tmux"): - request.getfixturevalue("set_home") - doctest_namespace["server"] = request.getfixturevalue("server") - session: "Session" = request.getfixturevalue("session") - doctest_namespace["session"] = session - doctest_namespace["window"] = session.attached_window - doctest_namespace["pane"] = session.attached_pane - doctest_namespace["request"] = request - - -@pytest.fixture(autouse=True, scope="function") -def set_home( - monkeypatch: pytest.MonkeyPatch, - user_path: pathlib.Path, -) -> None: - monkeypatch.setenv("HOME", str(user_path)) - - -@pytest.fixture(autouse=True, scope="session") -@pytest.mark.usefixtures("clear_env") -def setup( - request: pytest.FixtureRequest, - config_file: pathlib.Path, -) -> None: - if USING_ZSH: - request.getfixturevalue("zshrc") diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index ec9aaf09f..000000000 --- a/tests/conftest.py +++ /dev/null @@ -1,3 +0,0 @@ -from libtmux.conftest import * # NOQA: F4 - -pytest_plugins = ["pytester"]