From b72f522e30fbdc75e6bb50714e9063d00388672c Mon Sep 17 00:00:00 2001 From: teknium1 Date: Mon, 16 Mar 2026 05:40:05 -0700 Subject: [PATCH] test: fake minisweagent for docker cwd mount regressions Make the new Docker cwd-mount tests pass in CI environments that do not have the minisweagent package installed by injecting a fake module instead of monkeypatching an import path that may not exist. --- tests/tools/test_docker_environment.py | 72 +++++++++----------------- 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/tests/tools/test_docker_environment.py b/tests/tools/test_docker_environment.py index 499ebcd4..03b32d20 100644 --- a/tests/tools/test_docker_environment.py +++ b/tests/tools/test_docker_environment.py @@ -1,11 +1,31 @@ import logging import subprocess +import sys +import types import pytest from tools.environments import docker as docker_env +def _install_fake_minisweagent(monkeypatch, captured_run_args): + class MockInnerDocker: + container_id = "fake-container" + config = type("Config", (), {"executable": "/usr/bin/docker", "forward_env": [], "env": {}})() + + def __init__(self, **kwargs): + captured_run_args.extend(kwargs.get("run_args", [])) + + minisweagent_mod = types.ModuleType("minisweagent") + environments_mod = types.ModuleType("minisweagent.environments") + docker_mod = types.ModuleType("minisweagent.environments.docker") + docker_mod.DockerEnvironment = MockInnerDocker + + monkeypatch.setitem(sys.modules, "minisweagent", minisweagent_mod) + monkeypatch.setitem(sys.modules, "minisweagent.environments", environments_mod) + monkeypatch.setitem(sys.modules, "minisweagent.environments.docker", docker_mod) + + def _make_dummy_env(**kwargs): """Helper to construct DockerEnvironment with minimal required args.""" return docker_env.DockerEnvironment( @@ -101,18 +121,7 @@ def test_auto_mount_host_cwd_adds_volume(monkeypatch, tmp_path): monkeypatch.setattr(docker_env.subprocess, "run", _run_docker_version) captured_run_args = [] - - class MockInnerDocker: - container_id = "mock-container-123" - config = type("Config", (), {"executable": "/usr/bin/docker", "forward_env": [], "env": {}})() - - def __init__(self, **kwargs): - captured_run_args.extend(kwargs.get("run_args", [])) - - monkeypatch.setattr( - "minisweagent.environments.docker.DockerEnvironment", - MockInnerDocker, - ) + _install_fake_minisweagent(monkeypatch, captured_run_args) _make_dummy_env( cwd="/workspace", @@ -136,18 +145,7 @@ def test_auto_mount_disabled_by_default(monkeypatch, tmp_path): monkeypatch.setattr(docker_env.subprocess, "run", _run_docker_version) captured_run_args = [] - - class MockInnerDocker: - container_id = "mock-container-456" - config = type("Config", (), {"executable": "/usr/bin/docker", "forward_env": [], "env": {}})() - - def __init__(self, **kwargs): - captured_run_args.extend(kwargs.get("run_args", [])) - - monkeypatch.setattr( - "minisweagent.environments.docker.DockerEnvironment", - MockInnerDocker, - ) + _install_fake_minisweagent(monkeypatch, captured_run_args) _make_dummy_env( cwd="/root", @@ -173,18 +171,7 @@ def test_auto_mount_skipped_when_workspace_already_mounted(monkeypatch, tmp_path monkeypatch.setattr(docker_env.subprocess, "run", _run_docker_version) captured_run_args = [] - - class MockInnerDocker: - container_id = "mock-container-789" - config = type("Config", (), {"executable": "/usr/bin/docker", "forward_env": [], "env": {}})() - - def __init__(self, **kwargs): - captured_run_args.extend(kwargs.get("run_args", [])) - - monkeypatch.setattr( - "minisweagent.environments.docker.DockerEnvironment", - MockInnerDocker, - ) + _install_fake_minisweagent(monkeypatch, captured_run_args) _make_dummy_env( cwd="/workspace", @@ -210,18 +197,7 @@ def test_auto_mount_replaces_persistent_workspace_bind(monkeypatch, tmp_path): monkeypatch.setattr(docker_env.subprocess, "run", _run_docker_version) captured_run_args = [] - - class MockInnerDocker: - container_id = "mock-container-persistent" - config = type("Config", (), {"executable": "/usr/bin/docker", "forward_env": [], "env": {}})() - - def __init__(self, **kwargs): - captured_run_args.extend(kwargs.get("run_args", [])) - - monkeypatch.setattr( - "minisweagent.environments.docker.DockerEnvironment", - MockInnerDocker, - ) + _install_fake_minisweagent(monkeypatch, captured_run_args) _make_dummy_env( cwd="/workspace",