Skip to content

Commit 5e87bc0

Browse files
committed
refactor!(test[random]) Move more helpers to test.random
1 parent e07ebf9 commit 5e87bc0

File tree

3 files changed

+89
-74
lines changed

3 files changed

+89
-74
lines changed

src/libtmux/pytest_plugin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313

1414
from libtmux import exc
1515
from libtmux.server import Server
16-
from libtmux.test import get_test_session_name
1716
from libtmux.test.constants import TEST_SESSION_PREFIX
18-
from libtmux.test.random import namer
17+
from libtmux.test.random import get_test_session_name, namer
1918

2019
if t.TYPE_CHECKING:
2120
import pathlib

src/libtmux/test/__init__.py

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -90,78 +90,6 @@ def retry_until(
9090
return True
9191

9292

93-
def get_test_session_name(server: Server, prefix: str = TEST_SESSION_PREFIX) -> str:
94-
"""
95-
Faker to create a session name that doesn't exist.
96-
97-
Parameters
98-
----------
99-
server : :class:`libtmux.Server`
100-
libtmux server
101-
prefix : str
102-
prefix for sessions (e.g. ``libtmux_``). Defaults to
103-
``TEST_SESSION_PREFIX``.
104-
105-
Returns
106-
-------
107-
str
108-
Random session name guaranteed to not collide with current ones.
109-
110-
Examples
111-
--------
112-
>>> get_test_session_name(server=server)
113-
'libtmux_...'
114-
115-
Never the same twice:
116-
>>> get_test_session_name(server=server) != get_test_session_name(server=server)
117-
True
118-
"""
119-
while True:
120-
session_name = prefix + next(namer)
121-
if not server.has_session(session_name):
122-
break
123-
return session_name
124-
125-
126-
def get_test_window_name(
127-
session: Session,
128-
prefix: str | None = TEST_SESSION_PREFIX,
129-
) -> str:
130-
"""
131-
Faker to create a window name that doesn't exist.
132-
133-
Parameters
134-
----------
135-
session : :class:`libtmux.Session`
136-
libtmux session
137-
prefix : str
138-
prefix for windows (e.g. ``libtmux_``). Defaults to
139-
``TEST_SESSION_PREFIX``.
140-
141-
ATM we reuse the test session prefix here.
142-
143-
Returns
144-
-------
145-
str
146-
Random window name guaranteed to not collide with current ones.
147-
148-
Examples
149-
--------
150-
>>> get_test_window_name(session=session)
151-
'libtmux_...'
152-
153-
Never the same twice:
154-
>>> get_test_window_name(session=session) != get_test_window_name(session=session)
155-
True
156-
"""
157-
assert prefix is not None
158-
while True:
159-
window_name = prefix + next(namer)
160-
if len(session.windows.filter(window_name=window_name)) == 0:
161-
break
162-
return window_name
163-
164-
16593
@contextlib.contextmanager
16694
def temp_session(
16795
server: Server,

src/libtmux/test/random.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@
66
import random
77
import typing as t
88

9+
from libtmux.test.constants import (
10+
TEST_SESSION_PREFIX,
11+
)
12+
13+
logger = logging.getLogger(__name__)
14+
15+
if t.TYPE_CHECKING:
16+
import sys
17+
18+
from libtmux.server import Server
19+
from libtmux.session import Session
20+
21+
if sys.version_info >= (3, 11):
22+
pass
23+
24+
925
logger = logging.getLogger(__name__)
1026

1127
if t.TYPE_CHECKING:
@@ -44,3 +60,75 @@ def __next__(self) -> str:
4460

4561

4662
namer = RandomStrSequence()
63+
64+
65+
def get_test_session_name(server: Server, prefix: str = TEST_SESSION_PREFIX) -> str:
66+
"""
67+
Faker to create a session name that doesn't exist.
68+
69+
Parameters
70+
----------
71+
server : :class:`libtmux.Server`
72+
libtmux server
73+
prefix : str
74+
prefix for sessions (e.g. ``libtmux_``). Defaults to
75+
``TEST_SESSION_PREFIX``.
76+
77+
Returns
78+
-------
79+
str
80+
Random session name guaranteed to not collide with current ones.
81+
82+
Examples
83+
--------
84+
>>> get_test_session_name(server=server)
85+
'libtmux_...'
86+
87+
Never the same twice:
88+
>>> get_test_session_name(server=server) != get_test_session_name(server=server)
89+
True
90+
"""
91+
while True:
92+
session_name = prefix + next(namer)
93+
if not server.has_session(session_name):
94+
break
95+
return session_name
96+
97+
98+
def get_test_window_name(
99+
session: Session,
100+
prefix: str | None = TEST_SESSION_PREFIX,
101+
) -> str:
102+
"""
103+
Faker to create a window name that doesn't exist.
104+
105+
Parameters
106+
----------
107+
session : :class:`libtmux.Session`
108+
libtmux session
109+
prefix : str
110+
prefix for windows (e.g. ``libtmux_``). Defaults to
111+
``TEST_SESSION_PREFIX``.
112+
113+
ATM we reuse the test session prefix here.
114+
115+
Returns
116+
-------
117+
str
118+
Random window name guaranteed to not collide with current ones.
119+
120+
Examples
121+
--------
122+
>>> get_test_window_name(session=session)
123+
'libtmux_...'
124+
125+
Never the same twice:
126+
>>> get_test_window_name(session=session) != get_test_window_name(session=session)
127+
True
128+
"""
129+
assert prefix is not None
130+
while True:
131+
window_name = prefix + next(namer)
132+
if len(session.windows.filter(window_name=window_name)) == 0:
133+
break
134+
return window_name

0 commit comments

Comments
 (0)