From 1d210d0f4068c7d69b96c245a8bedfbb4d16a29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=85=B1=E7=89=9B=E8=82=89?= Date: Wed, 14 Oct 2026 21:23:19 +0800 Subject: [PATCH] Handle optional Docker dependencies in benchmark unit tests --- .github/workflows/ci-python-tests.yml | 2 +- tests/unit/test_benchmark_docker.py | 3 +++ tests/unit/test_benchmark_docker_workspace.py | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-python-tests.yml b/.github/workflows/ci-python-tests.yml index 5eeb5d29..10f5a6aa 100644 --- a/.github/workflows/ci-python-tests.yml +++ b/.github/workflows/ci-python-tests.yml @@ -38,7 +38,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip setuptools wheel - pip install -e reme_studio -e ".[dev,core]" + pip install -e reme_studio -e ".[dev,core,benchmark-docker]" pip install --no-deps -e plugins/auto-fin pip install -e plugins/daily_paper pip install -e plugins/lme -e plugins/beam diff --git a/tests/unit/test_benchmark_docker.py b/tests/unit/test_benchmark_docker.py index 07740e31..0cdb4792 100644 --- a/tests/unit/test_benchmark_docker.py +++ b/tests/unit/test_benchmark_docker.py @@ -1299,6 +1299,7 @@ async def test_pool_retries_strict_delete_without_replacing_uncertain_container( from types import SimpleNamespace from unittest.mock import AsyncMock + pytest.importorskip("aiodocker") from deploy.benchmark_docker.direct_docker_workspace import DirectDockerWorkspace workspaces = [] @@ -1306,6 +1307,8 @@ async def test_pool_retries_strict_delete_without_replacing_uncertain_container( client = SimpleNamespace(close=AsyncMock()) class StrictWorkspace(DirectDockerWorkspace): + # Provisioning deliberately populates the inherited Docker handles. + # pylint: disable=attribute-defined-outside-init async def _provision_backend(self): self._container, self._client, self._backend = container, client, TimedOutBackend() diff --git a/tests/unit/test_benchmark_docker_workspace.py b/tests/unit/test_benchmark_docker_workspace.py index 5817474c..a30521bc 100644 --- a/tests/unit/test_benchmark_docker_workspace.py +++ b/tests/unit/test_benchmark_docker_workspace.py @@ -1,15 +1,15 @@ """Direct workspace lifecycle without a Docker daemon.""" -# pylint: disable=missing-function-docstring,protected-access +# pylint: disable=missing-function-docstring,protected-access,wrong-import-position import asyncio from types import SimpleNamespace from unittest.mock import AsyncMock -from aiodocker.exceptions import DockerError import pytest -from deploy.benchmark_docker.direct_docker_workspace import DirectDockerWorkspace +DockerError = pytest.importorskip("aiodocker.exceptions").DockerError +from deploy.benchmark_docker.direct_docker_workspace import DirectDockerWorkspace # noqa: E402 def make_workspace():