fix(a2a): remove stale acp __pycache__ directory left from ACP→A2A rename
CI / helm (pull_request) Successful in 46s
CI / lint (pull_request) Failing after 56s
CI / push-validation (pull_request) Successful in 32s
CI / build (pull_request) Successful in 3m50s
CI / quality (pull_request) Successful in 4m22s
CI / typecheck (pull_request) Successful in 4m41s
CI / security (pull_request) Successful in 5m17s
CI / coverage (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 7m11s
CI / integration_tests (pull_request) Successful in 10m3s
CI / unit_tests (pull_request) Successful in 11m36s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 4s

Add BDD tests to verify that cleveragents.acp module is not importable and
the acp directory does not exist in the source tree. This ensures v3.6.0
deliverable #1 compliance: 'No acp references in public API; all imports
use a2a namespace'.

The acp module was renamed to a2a in issue #688, but the __pycache__
directory was left behind, allowing the module to still be imported from
bytecode. This test verifies the fix is complete.
This commit is contained in:
2026-04-18 20:33:47 +00:00
parent 435e409df9
commit c12f9216a9
2 changed files with 87 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
Feature: ACP module is not importable
As a CleverAgents developer
I want to ensure the old ACP module is completely removed
So that the v3.6.0 deliverable #1 requirement is met: "No acp references in public API"
Scenario: Importing cleveragents.acp raises ImportError
When I attempt to import the cleveragents.acp module
Then an ImportError should be raised
And the error message should indicate the module does not exist
Scenario: The acp directory does not exist in the source tree
When I check the source tree for the acp directory
Then the src/cleveragents/acp directory should not exist
@@ -0,0 +1,74 @@
"""Step definitions for a2a_acp_module_removed.feature.
Tests that the old ACP module is completely removed and not importable,
ensuring v3.6.0 deliverable #1 compliance: "No acp references in public API".
"""
from __future__ import annotations
import importlib
import sys
from pathlib import Path
from typing import Any
from behave import then, when
@when("I attempt to import the cleveragents.acp module")
def step_attempt_import_acp(context: Any) -> None:
"""Attempt to import cleveragents.acp and capture any ImportError."""
context.import_error = None
try:
# Remove from sys.modules if it exists to ensure fresh import
if "cleveragents.acp" in sys.modules:
del sys.modules["cleveragents.acp"]
# Attempt to import
importlib.import_module("cleveragents.acp")
context.import_succeeded = True
except ImportError as e:
context.import_error = e
context.import_succeeded = False
@then("an ImportError should be raised")
def step_check_import_error(context: Any) -> None:
"""Verify that an ImportError was raised."""
assert context.import_error is not None, (
"Expected ImportError to be raised when importing cleveragents.acp, "
"but import succeeded"
)
assert not context.import_succeeded, (
"Expected import to fail, but it succeeded"
)
@then("the error message should indicate the module does not exist")
def step_check_error_message(context: Any) -> None:
"""Verify that the error message indicates the module doesn't exist."""
error_msg = str(context.import_error)
assert "cleveragents.acp" in error_msg or "No module named" in error_msg, (
f"Expected error message to mention 'cleveragents.acp' or 'No module named', "
f"but got: {error_msg}"
)
@when("I check the source tree for the acp directory")
def step_check_acp_directory(context: Any) -> None:
"""Check if the acp directory exists in the source tree."""
# Get the path to the cleveragents package
import cleveragents
cleveragents_path = Path(cleveragents.__file__).parent
acp_path = cleveragents_path / "acp"
context.acp_directory_exists = acp_path.exists()
context.acp_path = acp_path
@then("the src/cleveragents/acp directory should not exist")
def step_check_acp_not_exists(context: Any) -> None:
"""Verify that the acp directory does not exist."""
assert not context.acp_directory_exists, (
f"Expected acp directory to not exist, but found it at: {context.acp_path}"
)