merge: testing → main (reconcile 2-week divergence)
This commit is contained in:
35
tests/docker/conftest.py
Normal file
35
tests/docker/conftest.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""
|
||||
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)
|
||||
Reference in New Issue
Block a user