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
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:
@@ -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}"
|
||||
)
|
||||
Reference in New Issue
Block a user