strix/tests/test_docker_connection_message.py
2026-09-08 01:14:38 +00:00

37 lines
1 KiB
Python

from __future__ import annotations
import io
import docker
import pytest
from docker.errors import DockerException
from rich.console import Console
from strix.interface import utils
DOCKER_PERMISSION_ERROR = "permission denied while trying to connect to the Docker daemon socket"
DOCKER_SOCKET_HINT = "Docker socket"
DOCKER_GROUP_HINT = "docker group"
def test_docker_connection_permission_error_mentions_socket_access(
monkeypatch: pytest.MonkeyPatch,
) -> None:
output = io.StringIO()
def fake_console() -> Console:
return Console(file=output, color_system=None, force_terminal=False)
def fail_from_env() -> None:
raise DockerException(DOCKER_PERMISSION_ERROR)
monkeypatch.setattr(utils, "Console", fake_console)
monkeypatch.setattr(docker, "from_env", fail_from_env)
with pytest.raises(RuntimeError, match="Docker not available"):
utils.check_docker_connection()
rendered = output.getvalue()
assert DOCKER_SOCKET_HINT in rendered
assert DOCKER_GROUP_HINT in rendered