feat: add GUI display availability check for SSH sessions

This commit is contained in:
2026-06-24 12:27:29 +02:00
committed by wakonig_k
parent 6dd3519dd5
commit ee360adf3a
2 changed files with 73 additions and 0 deletions
+33
View File
@@ -12,6 +12,7 @@ from bec_widgets.cli.client_utils import (
BECGuiClient,
_join_process_output_thread,
_start_plot_process,
check_gui_display_available,
)
from bec_widgets.cli.rpc.rpc_base import RPCBase, RPCResponseTimeoutError, rpc_timeout
@@ -97,6 +98,38 @@ def test_client_utils_passes_client_config_to_server(bec_dispatcher):
)
def test_check_gui_display_available_reports_missing_display_for_ssh_session():
with mock.patch.dict(
"bec_widgets.cli.client_utils.os.environ", {"SSH_CONNECTION": "1"}, clear=True
):
available, message = check_gui_display_available()
assert available is False
assert message is not None
assert "SSH session" in message
assert "ssh -X" in message
def test_client_utils_start_server_returns_when_no_display(bec_dispatcher):
gui = BECGuiClient()
gui._client = bec_dispatcher.client
gui._gui_id = "gui_id"
gui._gui_is_alive = mock.MagicMock(return_value=False)
with (
mock.patch(
"bec_widgets.cli.client_utils.check_gui_display_available",
return_value=(False, "No display available"),
),
mock.patch("bec_widgets.cli.client_utils._start_plot_process") as mock_start_plot,
mock.patch("bec_widgets.cli.client_utils.logger") as mock_logger,
):
gui._start_server(wait=False)
mock_start_plot.assert_not_called()
mock_logger.error.assert_called_once_with("No display available")
@contextmanager
def _no_wait_for_server(_client):
yield