**PR Description** This update bumps the integration’s version to `0.2.0` and brings several important changes to how `langchain-arcade` interfaces with Arcade tools: 1. **Updated Tool Definition Imports** • Replaces `arcadepy.types.shared.ToolDefinition` with `arcadepy.types.ToolGetResponse as ToolDefinition`. • The parameter extraction is now done via `tool_def.input.parameters` instead of the previous `tool_def.inputs.parameters`. 2. **Authorization Flow Adjustments** • Uses `auth_response.url` instead of `auth_response.authorization_url`. • The `authorize` and `is_authorized` methods now rely on the Arcade client’s updated arguments (`client.auth.status(id=authorization_id)`). 3. **Tool Execution Parameter Renaming** • The `execute` method now expects `input=kwargs` instead of `inputs=kwargs`, aligning with Arcade’s new API spec. 4. **Tool Retrieval Enhancements** • `_retrieve_tool_definitions` is revised to better handle pagination and tool listing (including when no tools/toolkits are explicitly provided). 5. **Version & Dependency Updates** • Increases `langchain-arcade` to `0.2.0`. • Switches `arcadepy` dependency to `~1.0.0rc1`. • Updates example requirements to consume `langchain-arcade[langgraph]>=0.2.0`. These changes may affect existing code that relies on older parameter names (`inputs.parameters` → `input.parameters`) and the renamed execute argument. Please ensure any integrations or custom usage of Arcade tools is updated accordingly.
33 lines
897 B
Python
33 lines
897 B
Python
import os
|
|
|
|
import pytest
|
|
from arcadepy import Arcade
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def arcade_base_url():
|
|
"""
|
|
Retrieve the ARCADE_BASE_URL from the environment, falling back to a default
|
|
if not found.
|
|
"""
|
|
return os.getenv("ARCADE_BASE_URL", "http://localhost:9099")
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def arcade_api_key():
|
|
"""
|
|
Retrieve the ARCADE_API_KEY from the environment, falling back to a default
|
|
if not found.
|
|
"""
|
|
return os.getenv("ARCADE_API_KEY", "test_api_key")
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def arcade_client(arcade_base_url, arcade_api_key):
|
|
"""
|
|
Creates a single Arcade client instance for use in all tests.
|
|
Any method calls on this client can be patched/mocked within the tests.
|
|
"""
|
|
client = Arcade(api_key=arcade_api_key, base_url=arcade_base_url)
|
|
yield client
|
|
# Teardown logic would go here if necessary
|