mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
2758287c87
This PR is **part 1 of 3** splitting https://github.com/ComposioHQ/composio/pull/3505 to make the removal of the old 2025 custom tools easier to review. It carries the **Python** slice. - removes the legacy `composio.tools.custom_tool` registry path: `core.models.custom_tools`, `ExecuteRequestFn`, the old fallback execution wiring, the security tests, and the example - preserves the 2026 tool-router APIs: `composio.experimental.tool()`, `composio.experimental.Toolkit`, inline custom-tool execution, preload/attach/use flows, and `session.custom_tools()` - bumps the Python workspace and all provider packages `0.13.1` → `0.14.0` ## Notes - This slice is a byte-identical subset of #3505 — the three split branches recombine to that PR's exact tree. See #3505 for the original local verification logs (`uv run --frozen nox -s chk`, targeted pytest); CI re-runs per PR.
129 lines
3.4 KiB
Python
129 lines
3.4 KiB
Python
"""Test imports to ensure no circular import issues."""
|
|
|
|
import pytest
|
|
|
|
|
|
def test_basic_import():
|
|
"""Test basic import of Composio class."""
|
|
from composio import Composio
|
|
|
|
assert Composio is not None
|
|
|
|
|
|
def test_import_all_public_exports():
|
|
"""Test importing all public exports from composio package."""
|
|
from composio import (
|
|
Composio,
|
|
ToolkitLatestVersion,
|
|
ToolkitVersion,
|
|
ToolkitVersionParam,
|
|
ToolkitVersions,
|
|
__version__,
|
|
after_execute,
|
|
before_execute,
|
|
schema_modifier,
|
|
)
|
|
|
|
assert Composio is not None
|
|
assert after_execute is not None
|
|
assert before_execute is not None
|
|
assert schema_modifier is not None
|
|
assert ToolkitLatestVersion is not None
|
|
assert ToolkitVersion is not None
|
|
assert ToolkitVersionParam is not None
|
|
assert ToolkitVersions is not None
|
|
assert __version__ is not None
|
|
|
|
|
|
def test_import_types():
|
|
"""Test importing types from different modules."""
|
|
from composio.types import (
|
|
Modifiers,
|
|
Tool,
|
|
ToolExecuteParams,
|
|
ToolExecutionResponse,
|
|
ToolkitLatestVersion,
|
|
ToolkitVersion,
|
|
ToolkitVersionParam,
|
|
ToolkitVersions,
|
|
TriggerEvent,
|
|
TTool,
|
|
TToolCollection,
|
|
auth_scheme,
|
|
)
|
|
|
|
assert Tool is not None
|
|
assert TTool is not None
|
|
assert TToolCollection is not None
|
|
assert ToolExecuteParams is not None
|
|
assert ToolExecutionResponse is not None
|
|
assert TriggerEvent is not None
|
|
assert Modifiers is not None
|
|
assert auth_scheme is not None
|
|
assert ToolkitLatestVersion is not None
|
|
assert ToolkitVersion is not None
|
|
assert ToolkitVersions is not None
|
|
assert ToolkitVersionParam is not None
|
|
|
|
|
|
def test_import_core_types():
|
|
"""Test importing core types directly."""
|
|
from composio.core.types import (
|
|
ToolkitLatestVersion,
|
|
ToolkitVersion,
|
|
ToolkitVersionParam,
|
|
ToolkitVersions,
|
|
)
|
|
|
|
assert ToolkitLatestVersion is not None
|
|
assert ToolkitVersion is not None
|
|
assert ToolkitVersions is not None
|
|
assert ToolkitVersionParam is not None
|
|
|
|
|
|
def test_import_core_models():
|
|
"""Test importing core models."""
|
|
from composio.core.models import (
|
|
AuthConfigs,
|
|
ConnectedAccounts,
|
|
Toolkits,
|
|
Tools,
|
|
Triggers,
|
|
)
|
|
|
|
assert AuthConfigs is not None
|
|
assert ConnectedAccounts is not None
|
|
assert Toolkits is not None
|
|
assert Tools is not None
|
|
assert Triggers is not None
|
|
|
|
|
|
def test_import_sdk():
|
|
"""Test importing SDK directly."""
|
|
from composio.sdk import Composio
|
|
|
|
assert Composio is not None
|
|
|
|
|
|
def test_import_exceptions():
|
|
"""Test importing exceptions."""
|
|
from composio import exceptions
|
|
|
|
assert exceptions is not None
|
|
assert hasattr(exceptions, "ApiKeyNotProvidedError")
|
|
|
|
|
|
def test_circular_import_prevention():
|
|
"""Test that circular imports are prevented."""
|
|
# This test passes if no ImportError is raised during import
|
|
try:
|
|
from composio import Composio # noqa: F401
|
|
from composio.core.models.tools import Tools # noqa: F401
|
|
from composio.core.types import ToolkitVersion # noqa: F401
|
|
from composio.types import ToolkitVersionParam # noqa: F401
|
|
|
|
# If we get here, no circular import occurred
|
|
assert True
|
|
except ImportError as e:
|
|
pytest.fail(f"Circular import detected: {e}")
|