Files
DECNET/tests/docker/conftest.py

36 lines
866 B
Python

"""
Shared fixtures for tests under `tests/docker/`.
All tests here are marked `docker` and excluded from the default run
(see pyproject.toml addopts). Enable with: `pytest -m docker`.
"""
from __future__ import annotations
import shutil
import subprocess
import pytest
def _docker_available() -> bool:
if shutil.which("docker") is None:
return False
try:
subprocess.run(
["docker", "info"],
check=True,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
timeout=5,
)
except (subprocess.CalledProcessError, subprocess.TimeoutExpired, OSError):
return False
return True
@pytest.fixture(scope="session", autouse=True)
def _require_docker():
if not _docker_available():
pytest.skip("docker daemon not reachable", allow_module_level=True)