diff --git a/tests/fixtures/workspacebuilder/window_automatic_rename.yaml b/tests/fixtures/workspacebuilder/window_automatic_rename.yaml index 08329afcfea..a3640f4dedc 100644 --- a/tests/fixtures/workspacebuilder/window_automatic_rename.yaml +++ b/tests/fixtures/workspacebuilder/window_automatic_rename.yaml @@ -6,7 +6,7 @@ windows: automatic-rename: on panes: - shell_command: - - cmd: sh + - cmd: man ls start_directory: '~' - shell_command: - cmd: echo "hey" diff --git a/tests/test_workspacebuilder.py b/tests/test_workspacebuilder.py index 2ab04a9363f..b347fb36723 100644 --- a/tests/test_workspacebuilder.py +++ b/tests/test_workspacebuilder.py @@ -11,7 +11,7 @@ import libtmux from libtmux import Window from libtmux.common import has_gte_version -from libtmux.test import retry, temp_session +from libtmux.test import retry, retry_until, temp_session from tmuxp import config, exc from tmuxp.cli.load import load_plugins from tmuxp.workspacebuilder import WorkspaceBuilder @@ -359,6 +359,12 @@ def test_automatic_rename_option(session): sconfig = kaptan.Kaptan(handler="yaml") sconfig = sconfig.import_config(yaml_config).get() + # This should be a command guaranteed to be terminal name across systems + portable_command = sconfig["windows"][0]["panes"][0]["shell_command"][0]["cmd"] + # If a command is like "man ls", get the command base name, "ls" + if " " in portable_command: + portable_command = portable_command.split(" ")[0] + builder = WorkspaceBuilder(sconf=sconfig) window_count = len(session._windows) # current window count @@ -380,31 +386,24 @@ def test_automatic_rename_option(session): assert s.name != "tmuxp" w = s.windows[0] - while retry(): + def check_window_name_mismatch() -> bool: session.server._update_windows() - if w.name != "sh": - break + return w.name != portable_command - assert w.name != "sh" + assert retry_until(check_window_name_mismatch, 2, interval=0.25) pane_base_index = w.show_window_option("pane-base-index", g=True) w.select_pane(pane_base_index) - while retry(): + def check_window_name_match() -> bool: session.server._update_windows() - if w.name == "sh": - break + return w.name == portable_command - assert w.name == "sh" + assert retry_until(check_window_name_match, 2, interval=0.25) w.select_pane("-D") - while retry(): - session.server._update_windows() - if w["window_name"] != "sh": - break - - assert w.name != "sh" + assert retry_until(check_window_name_mismatch, 2, interval=0.25) def test_blank_pane_count(session):