fix(tests): update stale mock patch targets after validation helper refactor
The PR moved `_get_tool_registry_service` from a private helper in `validation.py` to a public `get_tool_registry_service` in `validation_helpers.py`, re-exported into the `validation` module namespace. All test files that patched the old private name via `mock.patch()` raised `AttributeError` at runtime. Updated all 14 affected files to patch the public name: - features/steps/: 8 step files updated patch targets and direct imports - robot/: 4 helper scripts updated patch targets - benchmarks/: 2 benchmark files updated patch targets Also fixed `validation_list_command_steps.py`: - Added `patch` import - Added proper `get_tool_registry_service` patcher in all @given steps so the CLI is mocked correctly during scenario execution - Removed invalid import from non-existent `validation_app` module ISSUES CLOSED: #8667
This commit is contained in:
@@ -150,7 +150,7 @@ class M3ValidationAddSuite:
|
||||
}
|
||||
self._mock_service.register_tool.return_value = mock_validation
|
||||
self._patcher = patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=self._mock_service,
|
||||
)
|
||||
self._patcher.start()
|
||||
|
||||
@@ -162,7 +162,7 @@ class ValidationCLIAddSuite:
|
||||
)
|
||||
self._mock_service.get_tool.return_value = None
|
||||
self._patcher = patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=self._mock_service,
|
||||
)
|
||||
self._patcher.start()
|
||||
|
||||
@@ -58,7 +58,7 @@ def step_m3_smoke_mock_env(context: Context) -> None:
|
||||
return_value=context.mock_invariant_service,
|
||||
)
|
||||
context.validation_patcher = patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=context.mock_tool_registry_service,
|
||||
)
|
||||
context.plan_patcher = patch(
|
||||
|
||||
@@ -54,11 +54,11 @@ def step_tdd_di_container_has_provider(context: Context) -> None:
|
||||
|
||||
@when("_get_tool_registry_service is called with the mocked container")
|
||||
def step_tdd_di_call_function(context: Context) -> None:
|
||||
"""Call _get_tool_registry_service with the mocked container injected."""
|
||||
from cleveragents.cli.commands.validation import _get_tool_registry_service
|
||||
"""Call get_tool_registry_service with the mocked container injected."""
|
||||
from cleveragents.cli.commands.validation_helpers import get_tool_registry_service
|
||||
|
||||
with patch(_PATCH_GET_CONTAINER, return_value=context.tdd_di_mock_container):
|
||||
context.tdd_di_returned_service = _get_tool_registry_service()
|
||||
context.tdd_di_returned_service = get_tool_registry_service()
|
||||
|
||||
|
||||
@then("the returned service should be the one from container.tool_registry_service")
|
||||
|
||||
@@ -31,7 +31,7 @@ from cleveragents.cli.commands.validation import app as validation_app
|
||||
|
||||
_runner = CliRunner()
|
||||
|
||||
_PATCH_SVC = "cleveragents.cli.commands.validation._get_tool_registry_service"
|
||||
_PATCH_SVC = "cleveragents.cli.commands.validation.get_tool_registry_service"
|
||||
|
||||
_VALID_MODES = {"required", "informational"}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ def _patch_tool_svc(context: Context) -> Any:
|
||||
|
||||
def _patch_val_svc(context: Context) -> Any:
|
||||
return patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=context.mock_service,
|
||||
)
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ def _patch_tool_svc(context: Context) -> Any:
|
||||
|
||||
def _patch_val_svc(context: Context) -> Any:
|
||||
return patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=context.mock_service,
|
||||
)
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ def step_type_guard_mock_env(context: Context) -> None:
|
||||
context.mock_tool_registry_service = MagicMock()
|
||||
|
||||
context.validation_patcher = patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=context.mock_tool_registry_service,
|
||||
)
|
||||
context.validation_patcher.start()
|
||||
|
||||
@@ -32,7 +32,7 @@ _runner = CliRunner()
|
||||
_PATCH_GET_CONTAINER = "cleveragents.application.container.get_container"
|
||||
|
||||
# For the detach scenario we still patch the whole helper to isolate DB access.
|
||||
_PATCH_VAL_SVC = "cleveragents.cli.commands.validation._get_tool_registry_service"
|
||||
_PATCH_VAL_SVC = "cleveragents.cli.commands.validation.get_tool_registry_service"
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -89,10 +89,10 @@ def step_vcb_di_container(context: Context) -> None:
|
||||
|
||||
@when("the validation cli branch _get_tool_registry_service is called")
|
||||
def step_vcb_call_get_tool_registry_service(context: Context) -> None:
|
||||
from cleveragents.cli.commands.validation import _get_tool_registry_service
|
||||
from cleveragents.cli.commands.validation_helpers import get_tool_registry_service
|
||||
|
||||
with patch(_PATCH_GET_CONTAINER, return_value=context.vcb_mock_container):
|
||||
context.vcb_returned_service = _get_tool_registry_service()
|
||||
context.vcb_returned_service = get_tool_registry_service()
|
||||
|
||||
|
||||
@then("the validation cli branch returned service should be a ToolRegistryService")
|
||||
|
||||
@@ -7,7 +7,7 @@ from typing import Any
|
||||
import yaml
|
||||
from behave import given, then, when
|
||||
from typer.testing import CliRunner
|
||||
from unittest.mock import MagicMock
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
|
||||
def _make_validation(
|
||||
@@ -53,6 +53,14 @@ def _make_attachment(
|
||||
def step_validate_list_runner(context: Any) -> None:
|
||||
"""Set up a CliRunner for the validation CLI app."""
|
||||
context.validation_list_runner = CliRunner(mix_stderr=False)
|
||||
mock_service = MagicMock()
|
||||
mock_service.list_tools.return_value = []
|
||||
patcher = patch(
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_service,
|
||||
)
|
||||
patcher.start()
|
||||
context.add_cleanup(patcher.stop)
|
||||
|
||||
|
||||
@given("a tool registry with registered validation tools")
|
||||
@@ -80,8 +88,12 @@ def step_mock_validation_service_with_tools(context: Any) -> None:
|
||||
mock_service.list_tools.return_value = validations
|
||||
mock_service.get_tool.return_value = None
|
||||
|
||||
from cleveragents.cli.commands.validation_app import app as validation_app # noqa: F401
|
||||
|
||||
patcher = patch(
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_service,
|
||||
)
|
||||
patcher.start()
|
||||
context.add_cleanup(patcher.stop)
|
||||
context.mock_validation_service = mock_service
|
||||
|
||||
|
||||
@@ -102,6 +114,12 @@ def step_mock_namespaced_validations(context: Any) -> None:
|
||||
|
||||
mock_service = MagicMock()
|
||||
mock_service.list_tools.return_value = validations
|
||||
patcher = patch(
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_service,
|
||||
)
|
||||
patcher.start()
|
||||
context.add_cleanup(patcher.stop)
|
||||
context.mock_validation_service = mock_service
|
||||
|
||||
|
||||
@@ -128,6 +146,12 @@ def step_mock_sourced_validations(context: Any) -> None:
|
||||
|
||||
mock_service = MagicMock()
|
||||
mock_service.list_tools.return_value = validations
|
||||
patcher = patch(
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_service,
|
||||
)
|
||||
patcher.start()
|
||||
context.add_cleanup(patcher.stop)
|
||||
context.mock_validation_service = mock_service
|
||||
|
||||
|
||||
@@ -148,6 +172,12 @@ def step_mock_numbered_validations(context: Any) -> None:
|
||||
|
||||
mock_service = MagicMock()
|
||||
mock_service.list_tools.return_value = validations
|
||||
patcher = patch(
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_service,
|
||||
)
|
||||
patcher.start()
|
||||
context.add_cleanup(patcher.stop)
|
||||
context.mock_validation_service = mock_service
|
||||
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ def validation_add() -> None:
|
||||
}
|
||||
mock_svc.register_tool.return_value = mock_validation
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
@@ -218,7 +218,7 @@ def validation_attach() -> None:
|
||||
mock_attachment.created_at = "2026-01-01T00:00:00"
|
||||
mock_svc.attach_validation.return_value = mock_attachment
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
@@ -243,7 +243,7 @@ def validation_detach() -> None:
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.detach_validation.return_value = True
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
|
||||
@@ -41,7 +41,7 @@ from cleveragents.cli.commands.validation import app as validation_app # noqa:
|
||||
|
||||
runner: CliRunner = CliRunner()
|
||||
|
||||
_PATCH_SVC: str = "cleveragents.cli.commands.validation._get_tool_registry_service"
|
||||
_PATCH_SVC: str = "cleveragents.cli.commands.validation.get_tool_registry_service"
|
||||
|
||||
|
||||
def _fail(message: str) -> NoReturn:
|
||||
|
||||
@@ -151,7 +151,7 @@ def validation_add_config() -> None:
|
||||
svc.register_tool.return_value = _mock_tool("local/smoke-val", "validation")
|
||||
svc.get_tool.return_value = None
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=svc,
|
||||
):
|
||||
result = runner.invoke(validation_app, ["add", "--config", path])
|
||||
@@ -166,7 +166,7 @@ def validation_attach() -> None:
|
||||
svc = MagicMock()
|
||||
svc.attach_validation.return_value = _mock_attachment()
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
@@ -182,7 +182,7 @@ def validation_detach() -> None:
|
||||
svc = MagicMock()
|
||||
svc.detach_validation.return_value = True
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
|
||||
@@ -41,7 +41,7 @@ def attach_plain_tool_rejected() -> None:
|
||||
actual_type="tool",
|
||||
)
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
@@ -79,7 +79,7 @@ def attach_validation_accepted() -> None:
|
||||
mock_attachment.created_at = "2026-01-01T00:00:00"
|
||||
mock_svc.attach_validation.return_value = mock_attachment
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
@@ -107,7 +107,7 @@ def attach_plain_tool_dict_rejected() -> None:
|
||||
actual_type="tool",
|
||||
)
|
||||
with patch(
|
||||
"cleveragents.cli.commands.validation._get_tool_registry_service",
|
||||
"cleveragents.cli.commands.validation.get_tool_registry_service",
|
||||
return_value=mock_svc,
|
||||
):
|
||||
result = runner.invoke(
|
||||
|
||||
Reference in New Issue
Block a user