bec/bec_server/tests/test_tmux_launch.py

48 lines
1.8 KiB
Python

from string import Template
from unittest import mock
from bec_server.tmux_launch import tmux_start, tmux_stop
def test_tmux_start():
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
tmux_start(
"/path/to/bec",
"/path/to/config",
{
"scan_server": {
"path": Template("$base_path/scan_server"),
"command": "bec-scan-server",
},
"scan_bundler": {
"path": Template("$base_path/scan_bundler"),
"command": "bec-scan-bundler",
},
},
)
mock_libtmux_server.Server().new_session.assert_called_once_with(
"bec", window_name="BEC server. Use `ctrl+b d` to detach.", kill_session=True
)
assert (
mock_libtmux_server.Server().new_session().attached_window.select_layout.call_count == 2
)
assert mock_libtmux_server.Server().new_session().set_option.call_count == 1
assert mock_libtmux_server.Server().new_session().set_option.call_args[0][0] == "mouse"
assert mock_libtmux_server.Server().new_session().set_option.call_args[0][1] == "on"
def test_tmux_stop_without_sessions():
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
mock_libtmux_server.Server().sessions.filter.return_value = []
tmux_stop()
mock_libtmux_server.Server().kill_server.assert_not_called()
def test_tmux_stop_with_sessions():
session = mock.MagicMock()
with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server:
mock_libtmux_server.Server().sessions.filter.return_value = [session]
tmux_stop()
session.kill_session.assert_called_once()