fix(resource): move inline imports to top and remove redundant import
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 58s
CI / helm (pull_request) Successful in 30s
CI / push-validation (pull_request) Successful in 28s
CI / build (pull_request) Successful in 43s
CI / quality (pull_request) Successful in 1m9s
CI / benchmark-regression (pull_request) Failing after 34s
CI / typecheck (pull_request) Successful in 1m31s
CI / security (pull_request) Successful in 1m32s
CI / e2e_tests (pull_request) Failing after 4m6s
CI / unit_tests (pull_request) Failing after 4m25s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 4m26s
CI / status-check (pull_request) Failing after 3s

Addresses remaining CI review feedback from HAL9001 on PR #8304:

1. Moved all cleveragents imports from inside function bodies to module-level
   in features/steps/container_clone_into_steps.py (5 functions fixed)
2. Moved BUILTIN_TYPES import from inside step_look_up_in_builtin_types()
   to module level in features/steps/devcontainer_sandbox_strategy_steps.py
3. Removed redundant inline import of EMPTY_CONTENT_HASH and BaseResourceHandler
   inside diff() method of devcontainer.py (already available at module level)
4. Fixed stale docstring referencing old 'detected' terminology in
   robot/helper_devcontainer_lifecycle.py cmd_transition_valid()

All files pass ruff format and ruff check.
This commit is contained in:
2026-05-07 11:50:29 +00:00
parent 3ca64f7d1b
commit 4e288f1d87
4 changed files with 19 additions and 24 deletions
+15 -16
View File
@@ -10,14 +10,27 @@ from __future__ import annotations
from typing import Any
from unittest.mock import MagicMock, patch
from behave import given, then, when
from behave.runner import Context
from behave import given, then, when # type: ignore[import-untyped]
from behave.runner import Context # type: ignore[import-untyped]
from cleveragents.application.services._resource_registry_data import (
BUILTIN_TYPES,
)
from cleveragents.domain.models.core.container_lifecycle import (
ContainerLifecycleState,
ContainerLifecycleTracker,
)
from cleveragents.resource.handlers.clone_into import (
CloneIntoError,
clone_repo_into_container,
validate_clone_into_url,
)
from cleveragents.resource.handlers.devcontainer import (
DevcontainerHandler,
clear_lifecycle_registry,
set_lifecycle_tracker,
)
from cleveragents.domain.models.core.resource import Resource
# ── When steps ───────────────────────────────────────────────
@@ -99,8 +112,6 @@ def step_clone_into_container_at(
@when('I look up the "{type_name}" resource type spec')
def step_look_up_resource_type_spec(context: Context, type_name: str) -> None:
"""Look up a resource type spec from BUILTIN_TYPES."""
from cleveragents.application.services._resource_registry_data import BUILTIN_TYPES
context.resource_type_spec = None
for entry in BUILTIN_TYPES:
if entry.get("name") == type_name:
@@ -290,16 +301,6 @@ def step_devcontainer_resource_with_clone_into(
context: Context, clone_url: str, container_id: str
) -> None:
"""Set up a devcontainer-instance resource with clone_into property and tracker."""
from cleveragents.domain.models.core.container_lifecycle import (
ContainerLifecycleState,
ContainerLifecycleTracker,
)
from cleveragents.domain.models.core.resource import Resource
from cleveragents.resource.handlers.devcontainer import (
clear_lifecycle_registry,
set_lifecycle_tracker,
)
# Clear any existing lifecycle state
clear_lifecycle_registry()
@@ -346,8 +347,6 @@ def step_mock_clone_repo_into_container(context: Context) -> None:
@when("DevcontainerHandler.resolve() is called for the resource")
def step_call_devcontainer_handler_resolve(context: Context) -> None:
"""Call DevcontainerHandler.resolve() with the test resource."""
from cleveragents.resource.handlers.devcontainer import DevcontainerHandler
handler = DevcontainerHandler()
mock_sandbox_manager = MagicMock()
mock_bound_resource = MagicMock()
@@ -10,6 +10,9 @@ from __future__ import annotations
from behave import then, when
from behave.runner import Context
from cleveragents.application.services._resource_registry_data import (
BUILTIN_TYPES,
)
from cleveragents.domain.models.core.container_lifecycle import (
ContainerLifecycleTracker,
)
@@ -33,8 +36,6 @@ def step_create_tracker_for_sandbox(context: Context, resource_id: str) -> None:
@when('I look up "{type_name}" in BUILTIN_TYPES')
def step_look_up_in_builtin_types(context: Context, type_name: str) -> None:
"""Look up a resource type entry in BUILTIN_TYPES."""
from cleveragents.application.services._resource_registry_data import BUILTIN_TYPES
context.builtin_type_entry = None
for entry in BUILTIN_TYPES:
if entry.get("name") == type_name:
+1 -1
View File
@@ -111,7 +111,7 @@ def cmd_enum_values() -> None:
def cmd_transition_valid() -> None:
"""Verify detected->building transition."""
"""Verify discovered->building transition."""
clear_lifecycle_registry()
tracker = ContainerLifecycleTracker(resource_id="01ROBOTTEST0000000000001")
tracker = transition_state(tracker, ContainerLifecycleState.BUILDING, reason="test")
@@ -644,11 +644,6 @@ class DevcontainerHandler(BaseResourceHandler):
# We construct a temporary resource pointing at other_location and
# call the base-class content_hash directly (bypassing the
# devcontainer override which would try to exec into the container).
from cleveragents.resource.handlers._base import (
EMPTY_CONTENT_HASH,
BaseResourceHandler,
)
other_resource = resource.__class__(
resource_id=resource.resource_id,
name=resource.name,