diff --git a/src/tmuxp/workspacebuilder.py b/src/tmuxp/workspacebuilder.py index 1913097a28..ef0d7549cf 100644 --- a/src/tmuxp/workspacebuilder.py +++ b/src/tmuxp/workspacebuilder.py @@ -214,7 +214,8 @@ def build(self, session=None, append=False): "start_directory" ] session = self.server.new_session( - session_name=self.sconf["session_name"] + session_name=self.sconf["session_name"], + **new_session_kwargs, ) assert self.sconf["session_name"] == session.name diff --git a/tests/fixtures/workspacebuilder/start_directory_session_path.yaml b/tests/fixtures/workspacebuilder/start_directory_session_path.yaml new file mode 100644 index 0000000000..5fd35b2f4e --- /dev/null +++ b/tests/fixtures/workspacebuilder/start_directory_session_path.yaml @@ -0,0 +1,6 @@ +--- +session_name: sample_start_dir_session_path +start_directory: '/usr' +windows: + - panes: + - diff --git a/tests/test_workspacebuilder.py b/tests/test_workspacebuilder.py index d6c6c20dfb..f4e0fcd654 100644 --- a/tests/test_workspacebuilder.py +++ b/tests/test_workspacebuilder.py @@ -514,6 +514,28 @@ def f(): assert retry_until(f) +@pytest.mark.skipif( + has_lt_version("3.2a"), reason="needs format introduced in tmux >= 3.2a" +) +def test_start_directory_sets_session_path(server): + yaml_config = test_utils.read_config_file( + "workspacebuilder/start_directory_session_path.yaml" + ) + sconfig = kaptan.Kaptan(handler="yaml") + sconfig = sconfig.import_config(yaml_config).get() + sconfig = config.expand(sconfig) + sconfig = config.trickle(sconfig) + + builder = WorkspaceBuilder(sconf=sconfig, server=server) + builder.build() + + session = builder.session + expected = "{0}|/usr".format(session.id) + + cmd = server.cmd("list-sessions", "-F", "#{session_id}|#{session_path}") + assert expected in cmd.stdout + + def test_pane_order(session): """Pane ordering based on position in config and ``pane_index``.