Skip to content

Commit acd91cf

Browse files
committed
tests/legacy_api(refactor): Remove pre-3.2 version conditionals
why: Drop support for tmux versions older than 3.2 what: - test_session.py: Remove has_gte_version/has_lt_version imports and guards - test_session.py: Simplify option error tests to always expect InvalidOption - test_session.py: Remove environment warning test for old tmux - test_window.py: Remove has_gte_version/has_lt_version imports - test_window.py: Simplify pane_start_command and size tests - test_window.py: Simplify option tests to always expect InvalidOption - test_window.py: Remove skipif decorators for 3.0/3.2 features - test_window.py: Remove environment warning test for old tmux
1 parent 3446043 commit acd91cf

File tree

2 files changed

+24
-116
lines changed

2 files changed

+24
-116
lines changed

tests/legacy_api/test_session.py

Lines changed: 7 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import pytest
1010

1111
from libtmux import exc
12-
from libtmux.common import has_gte_version, has_lt_version
1312
from libtmux.pane import Pane
1413
from libtmux.session import Session
1514
from libtmux.test.constants import TEST_SESSION_PREFIX
@@ -27,9 +26,8 @@ def test_has_session(server: Server, session: Session) -> None:
2726
TEST_SESSION_NAME = session.get("session_name")
2827
assert TEST_SESSION_NAME is not None
2928
assert server.has_session(TEST_SESSION_NAME)
30-
if has_gte_version("2.1"):
31-
assert not server.has_session(TEST_SESSION_NAME[:-2])
32-
assert server.has_session(TEST_SESSION_NAME[:-2], exact=False)
29+
assert not server.has_session(TEST_SESSION_NAME[:-2])
30+
assert server.has_session(TEST_SESSION_NAME[:-2], exact=False)
3331
assert not server.has_session("asdf2314324321")
3432

3533

@@ -148,11 +146,8 @@ def test_empty_session_option_returns_None(session: Session) -> None:
148146

149147

150148
def test_show_option_unknown(session: Session) -> None:
151-
"""Session.show_option raises UnknownOption for invalid option."""
152-
cmd_exception: type[exc.OptionError] = exc.UnknownOption
153-
if has_gte_version("3.0"):
154-
cmd_exception = exc.InvalidOption
155-
with pytest.raises(cmd_exception):
149+
"""Session.show_option raises InvalidOption for invalid option."""
150+
with pytest.raises(exc.InvalidOption):
156151
session.show_option("moooz")
157152

158153

@@ -169,13 +164,9 @@ def test_set_option_ambiguous(session: Session) -> None:
169164

170165

171166
def test_set_option_invalid(session: Session) -> None:
172-
"""Session.set_option raises UnknownOption for invalid option."""
173-
if has_gte_version("2.4"):
174-
with pytest.raises(exc.InvalidOption):
175-
session.set_option("afewewfew", 43)
176-
else:
177-
with pytest.raises(exc.UnknownOption):
178-
session.set_option("afewewfew", 43)
167+
"""Session.set_option raises InvalidOption for invalid option."""
168+
with pytest.raises(exc.InvalidOption):
169+
session.set_option("afewewfew", 43)
179170

180171

181172
def test_show_environment(session: Session) -> None:
@@ -264,10 +255,6 @@ def test_cmd_inserts_session_id(session: Session) -> None:
264255
assert cmd.cmd[-1] == last_arg
265256

266257

267-
@pytest.mark.skipif(
268-
has_lt_version("3.0"),
269-
reason="needs -e flag for new-window which was introduced in 3.0",
270-
)
271258
@pytest.mark.parametrize(
272259
"environment",
273260
[
@@ -294,27 +281,3 @@ def test_new_window_with_environment(
294281
for k, v in environment.items():
295282
pane.send_keys(f"echo ${k}")
296283
assert pane.capture_pane()[-2] == v
297-
298-
299-
@pytest.mark.skipif(
300-
has_gte_version("3.0"),
301-
reason="3.0 has the -e flag on new-window",
302-
)
303-
def test_new_window_with_environment_logs_warning_for_old_tmux(
304-
session: Session,
305-
caplog: pytest.LogCaptureFixture,
306-
) -> None:
307-
"""Verify new window with environment vars create a warning if tmux is too old."""
308-
env = shutil.which("env")
309-
assert env is not None, "Cannot find usable `env` in PATH."
310-
311-
session.new_window(
312-
attach=True,
313-
window_name="window_with_environment",
314-
window_shell=f"{env} PS1='$ ' sh",
315-
environment={"ENV_VAR": "window"},
316-
)
317-
318-
assert any("Environment flag ignored" in record.msg for record in caplog.records), (
319-
"Warning missing"
320-
)

tests/legacy_api/test_window.py

Lines changed: 17 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import pytest
1111

1212
from libtmux import exc
13-
from libtmux.common import has_gte_version, has_lt_version, has_version
13+
from libtmux.common import has_version
1414
from libtmux.pane import Pane
1515
from libtmux.server import Server
1616
from libtmux.window import Window
@@ -144,10 +144,7 @@ def test_split_window_shell(session: Session) -> None:
144144
assert window.width is not None
145145
assert window.panes[0].height is not None
146146
assert float(window.panes[0].height) <= ((float(window.width) + 1) / 2)
147-
if has_gte_version("3.2"):
148-
assert pane.get("pane_start_command", "").replace('"', "") == cmd
149-
else:
150-
assert pane.get("pane_start_command") == cmd
147+
assert pane.get("pane_start_command", "").replace('"', "") == cmd
151148

152149

153150
def test_split_window_horizontal(session: Session) -> None:
@@ -188,30 +185,17 @@ def test_split_window_size(session: Session) -> None:
188185
window = session.new_window(window_name="split_window window size")
189186
window.resize(height=100, width=100)
190187

191-
if has_gte_version("3.1"):
192-
pane = window.split_window(size=10)
193-
assert pane.pane_height == "10"
188+
pane = window.split_window(size=10)
189+
assert pane.pane_height == "10"
194190

195-
pane = window.split_window(vertical=False, size=10)
196-
assert pane.pane_width == "10"
191+
pane = window.split_window(vertical=False, size=10)
192+
assert pane.pane_width == "10"
197193

198-
pane = window.split_window(size="10%")
199-
assert pane.pane_height == "8"
194+
pane = window.split_window(size="10%")
195+
assert pane.pane_height == "8"
200196

201-
pane = window.split_window(vertical=False, size="10%")
202-
assert pane.pane_width == "8"
203-
else:
204-
window_height_before = (
205-
int(window.window_height) if isinstance(window.window_height, str) else 0
206-
)
207-
window_width_before = (
208-
int(window.window_width) if isinstance(window.window_width, str) else 0
209-
)
210-
pane = window.split_window(size="10%")
211-
assert pane.pane_height == str(int(window_height_before * 0.1))
212-
213-
pane = window.split_window(vertical=False, size="10%")
214-
assert pane.pane_width == str(int(window_width_before * 0.1))
197+
pane = window.split_window(vertical=False, size="10%")
198+
assert pane.pane_width == "8"
215199

216200

217201
@pytest.mark.parametrize(
@@ -279,9 +263,8 @@ def test_set_show_window_options(session: Session) -> None:
279263
assert window.show_window_option("main-pane-height") == 40
280264
assert window.show_window_options()["main-pane-height"] == 40
281265

282-
if has_gte_version("2.3"):
283-
window.set_window_option("pane-border-format", " #P ")
284-
assert window.show_window_option("pane-border-format") == " #P "
266+
window.set_window_option("pane-border-format", " #P ")
267+
assert window.show_window_option("pane-border-format") == " #P "
285268

286269

287270
def test_empty_window_option_returns_None(session: Session) -> None:
@@ -303,13 +286,10 @@ def test_show_window_option(session: Session) -> None:
303286

304287

305288
def test_show_window_option_unknown(session: Session) -> None:
306-
"""Window.show_window_option raises UnknownOption for bad option key."""
289+
"""Window.show_window_option raises InvalidOption for bad option key."""
307290
window = session.new_window(window_name="test_window")
308291

309-
cmd_exception: type[exc.OptionError] = exc.UnknownOption
310-
if has_gte_version("3.0"):
311-
cmd_exception = exc.InvalidOption
312-
with pytest.raises(cmd_exception):
292+
with pytest.raises(exc.InvalidOption):
313293
window.show_window_option("moooz")
314294

315295

@@ -330,15 +310,11 @@ def test_set_window_option_ambiguous(session: Session) -> None:
330310

331311

332312
def test_set_window_option_invalid(session: Session) -> None:
333-
"""Window.set_window_option raises ValueError for invalid option key."""
313+
"""Window.set_window_option raises InvalidOption for invalid option key."""
334314
window = session.new_window(window_name="test_window")
335315

336-
if has_gte_version("2.4"):
337-
with pytest.raises(exc.InvalidOption):
338-
window.set_window_option("afewewfew", 43)
339-
else:
340-
with pytest.raises(exc.UnknownOption):
341-
window.set_window_option("afewewfew", 43)
316+
with pytest.raises(exc.InvalidOption):
317+
window.set_window_option("afewewfew", 43)
342318

343319

344320
def test_move_window(session: Session) -> None:
@@ -366,10 +342,6 @@ def test_select_layout_accepts_no_arg(server: Server, session: Session) -> None:
366342
window.select_layout()
367343

368344

369-
@pytest.mark.skipif(
370-
has_lt_version("3.2"),
371-
reason="needs filter introduced in tmux >= 3.2",
372-
)
373345
def test_empty_window_name(session: Session) -> None:
374346
"""New windows can be created with empty string for window name."""
375347
session.set_option("automatic-rename", "off")
@@ -389,10 +361,6 @@ def test_empty_window_name(session: Session) -> None:
389361
assert "''" in cmd.stdout
390362

391363

392-
@pytest.mark.skipif(
393-
has_lt_version("3.0"),
394-
reason="needs -e flag for split-window which was introduced in 3.0",
395-
)
396364
@pytest.mark.parametrize(
397365
"environment",
398366
[
@@ -419,26 +387,3 @@ def test_split_window_with_environment(
419387
for k, v in environment.items():
420388
pane.send_keys(f"echo ${k}")
421389
assert pane.capture_pane()[-2] == v
422-
423-
424-
@pytest.mark.skipif(
425-
has_gte_version("3.0"),
426-
reason="3.0 has the -e flag on split-window",
427-
)
428-
def test_split_window_with_environment_logs_warning_for_old_tmux(
429-
session: Session,
430-
caplog: pytest.LogCaptureFixture,
431-
) -> None:
432-
"""Verify splitting window with environment variables warns if tmux too old."""
433-
env = shutil.which("env")
434-
assert env is not None, "Cannot find usable `env` in Path."
435-
436-
window = session.new_window(window_name="split_window_with_environment")
437-
window.split_window(
438-
shell=f"{env} PS1='$ ' sh",
439-
environment={"ENV_VAR": "pane"},
440-
)
441-
442-
assert any("Environment flag ignored" in record.msg for record in caplog.records), (
443-
"Warning missing"
444-
)

0 commit comments

Comments
 (0)