Skip to content

Commit 236daea

Browse files
committed
test(conftest): Only run add_doctest_fixtures on doctest
1 parent b897037 commit 236daea

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

tmuxp/conftest.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@
22
import logging
33
import os
44
import pathlib
5+
import typing as t
56

67
import pytest
78

9+
from _pytest.doctest import DoctestItem
10+
from _pytest.fixtures import SubRequest
11+
812
from libtmux import exc
13+
from libtmux.common import which
914
from libtmux.server import Server
1015
from libtmux.test import TEST_SESSION_PREFIX, get_test_session_name, namer
1116

17+
if t.TYPE_CHECKING:
18+
from libtmux.session import Session
19+
1220
logger = logging.getLogger(__name__)
1321
USING_ZSH = "zsh" in os.getenv("SHELL", "")
1422

@@ -62,16 +70,16 @@ def socket_name(request):
6270

6371

6472
@pytest.fixture(scope="function")
65-
def server(request, socket_name):
66-
t = Server()
67-
t.socket_name = socket_name
73+
def server(request: SubRequest, monkeypatch: pytest.MonkeyPatch) -> Server:
74+
tmux = Server()
75+
tmux.socket_name = socket_name
6876

69-
def fin():
70-
t.kill_server()
77+
def fin() -> None:
78+
tmux.kill_server()
7179

7280
request.addfinalizer(fin)
7381

74-
return t
82+
return tmux
7583

7684

7785
@pytest.fixture(scope="function")
@@ -108,8 +116,10 @@ def session(server):
108116
Make sure that tmuxp can :ref:`test_builder_visually` and switches to
109117
the newly created session for that testcase.
110118
"""
119+
session_id = session.get("session_id")
120+
assert session_id is not None
111121
try:
112-
server.switch_client(session.get("session_id"))
122+
server.switch_client(target_session=session_id)
113123
except exc.LibTmuxException:
114124
# server.attach_session(session.get('session_id'))
115125
pass
@@ -121,3 +131,16 @@ def session(server):
121131
assert TEST_SESSION_NAME != "tmuxp"
122132

123133
return session
134+
135+
136+
@pytest.fixture(autouse=True)
137+
def add_doctest_fixtures(
138+
request: SubRequest,
139+
doctest_namespace: t.Dict[str, t.Any],
140+
) -> None:
141+
if isinstance(request._pyfuncitem, DoctestItem) and which("tmux"):
142+
doctest_namespace["server"] = request.getfixturevalue("server")
143+
session: "Session" = request.getfixturevalue("session")
144+
doctest_namespace["session"] = session
145+
doctest_namespace["window"] = session.attached_window
146+
doctest_namespace["pane"] = session.attached_pane

0 commit comments

Comments
 (0)