6
6
import pytest
7
7
8
8
from libtmux import exc
9
- from libtmux .common import has_gte_version
9
+ from libtmux .common import has_gte_version , has_lt_version
10
10
from libtmux .pane import Pane
11
11
from libtmux .server import Server
12
12
from libtmux .session import Session
@@ -260,6 +260,10 @@ def test_cmd_inserts_sesion_id(session: Session) -> None:
260
260
assert cmd .cmd [- 1 ] == last_arg
261
261
262
262
263
+ @pytest .mark .skipif (
264
+ has_lt_version ("3.0" ),
265
+ reason = "needs -e flag for new-window which was introduced in 3.0" ,
266
+ )
263
267
def test_new_window_with_environment (session : Session ) -> None :
264
268
env = shutil .which ("env" )
265
269
assert env is not None , "Cannot find usable `env` in PATH."
@@ -274,3 +278,26 @@ def test_new_window_with_environment(session: Session) -> None:
274
278
assert pane is not None
275
279
pane .send_keys ("echo $ENV_VAR" )
276
280
assert pane .capture_pane () == ["$ echo $ENV_VAR" , "window" , "$" ]
281
+
282
+
283
+ @pytest .mark .skipif (
284
+ has_gte_version ("3.0" ),
285
+ reason = "3.0 has the -e flag on new-window" ,
286
+ )
287
+ def test_new_window_with_environment_logs_warning_for_old_tmux (
288
+ session : Session ,
289
+ caplog : pytest .LogCaptureFixture ,
290
+ ) -> None :
291
+ env = shutil .which ("env" )
292
+ assert env is not None , "Cannot find usable `env` in PATH."
293
+
294
+ session .new_window (
295
+ attach = True ,
296
+ window_name = "window_with_environment" ,
297
+ window_shell = f"{ env } PS1='$ ' bash --norc --noprofile" ,
298
+ environment = {"ENV_VAR" : "window" },
299
+ )
300
+
301
+ assert any (
302
+ "Cannot set up environment" in record .msg for record in caplog .records
303
+ ), "Warning missing"
0 commit comments