|
1 | | -"""Conftest.py (root-level). |
| 1 | +"""Configure root-level pytest fixtures for libtmux. |
2 | 2 |
|
3 | | -We keep this in root pytest fixtures in pytest's doctest plugin to be available, as well |
4 | | -as avoiding conftest.py from being included in the wheel, in addition to pytest_plugin |
5 | | -for pytester only being available via the root directory. |
| 3 | +We keep this file at the root to make these fixtures available to all |
| 4 | +tests, while also preventing unwanted inclusion in the distributed |
| 5 | +wheel. Additionally, `pytest_plugins` references ensure that the |
| 6 | +`pytester` plugin is accessible for test generation and execution. |
6 | 7 |
|
7 | | -See "pytest_plugins in non-top-level conftest files" in |
8 | | -https://docs.pytest.org/en/stable/deprecations.html |
| 8 | +See Also |
| 9 | +-------- |
| 10 | +pytest_plugins in non-top-level conftest files |
| 11 | + https://docs.pytest.org/en/stable/deprecations.html |
9 | 12 | """ |
10 | 13 |
|
11 | 14 | from __future__ import annotations |
@@ -35,7 +38,13 @@ def add_doctest_fixtures( |
35 | 38 | request: pytest.FixtureRequest, |
36 | 39 | doctest_namespace: dict[str, t.Any], |
37 | 40 | ) -> None: |
38 | | - """Configure doctest fixtures for pytest-doctest.""" |
| 41 | + """Configure doctest fixtures for pytest-doctest. |
| 42 | +
|
| 43 | + Automatically sets up tmux-related classes and default fixtures, |
| 44 | + making them available in doctest namespaces if `tmux` is found |
| 45 | + on the system. This ensures that doctest blocks referencing tmux |
| 46 | + structures can execute smoothly in the test environment. |
| 47 | + """ |
39 | 48 | if isinstance(request._pyfuncitem, DoctestItem) and shutil.which("tmux"): |
40 | 49 | request.getfixturevalue("set_home") |
41 | 50 | doctest_namespace["Server"] = Server |
@@ -63,22 +72,26 @@ def set_home( |
63 | 72 | monkeypatch: pytest.MonkeyPatch, |
64 | 73 | user_path: pathlib.Path, |
65 | 74 | ) -> None: |
66 | | - """Configure home directory for pytest tests.""" |
| 75 | + """Set the HOME environment variable to the temporary user directory.""" |
67 | 76 | monkeypatch.setenv("HOME", str(user_path)) |
68 | 77 |
|
69 | 78 |
|
70 | 79 | @pytest.fixture(autouse=True) |
71 | 80 | def setup_fn( |
72 | 81 | clear_env: None, |
73 | 82 | ) -> None: |
74 | | - """Function-level test configuration fixtures for pytest.""" |
| 83 | + """Apply function-level test fixture configuration (e.g., environment cleanup).""" |
75 | 84 |
|
76 | 85 |
|
77 | 86 | @pytest.fixture(autouse=True, scope="session") |
78 | 87 | def setup_session( |
79 | 88 | request: pytest.FixtureRequest, |
80 | 89 | config_file: pathlib.Path, |
81 | 90 | ) -> None: |
82 | | - """Session-level test configuration for pytest.""" |
| 91 | + """Apply session-level test fixture configuration for libtmux testing. |
| 92 | +
|
| 93 | + If zsh is in use, applies a suppressing `.zshrc` fix to avoid |
| 94 | + default interactive messages that might disrupt tmux sessions. |
| 95 | + """ |
83 | 96 | if USING_ZSH: |
84 | 97 | request.getfixturevalue("zshrc") |
0 commit comments