mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 10:17:00 +00:00
fix(langchain): activate test_return_direct_spec tests, fix types (#34565)
Co-authored-by: Mason Daugherty <mason@langchain.dev> Co-authored-by: Mason Daugherty <github@mdrxy.com>
This commit is contained in:
committed by
GitHub
parent
5fbf270c9d
commit
a7b943bbe3
@@ -141,8 +141,8 @@ ignore-var-parameters = true # ignore missing documentation for *args and **kwa
|
|||||||
"ANN", # Annotations, needs to fix
|
"ANN", # Annotations, needs to fix
|
||||||
"ARG", # Arguments, needs to fix
|
"ARG", # Arguments, needs to fix
|
||||||
]
|
]
|
||||||
"tests/unit_tests/agents/test_return_direct_spec.py" = ["F821"]
|
|
||||||
"tests/unit_tests/agents/test_responses_spec.py" = ["F821"]
|
"tests/unit_tests/agents/test_responses_spec.py" = ["F821"]
|
||||||
|
"tests/unit_tests/agents/test_return_direct_spec.py" = ["F821"]
|
||||||
"tests/unit_tests/agents/test_react_agent.py" = ["ALL"]
|
"tests/unit_tests/agents/test_react_agent.py" = ["ALL"]
|
||||||
|
|
||||||
"tests/*" = [
|
"tests/*" = [
|
||||||
|
|||||||
@@ -1,16 +1,27 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import pytest
|
import os
|
||||||
|
from typing import (
|
||||||
|
Any,
|
||||||
|
)
|
||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
# Skip this test since langgraph.prebuilt.responses is not available
|
import pytest
|
||||||
pytest.skip("langgraph.prebuilt.responses not available", allow_module_level=True)
|
from langchain_core.messages import HumanMessage
|
||||||
|
from langchain_core.tools import tool
|
||||||
|
|
||||||
|
from langchain.agents import create_agent
|
||||||
|
from langchain.agents.structured_output import (
|
||||||
|
ToolStrategy,
|
||||||
|
)
|
||||||
|
from tests.unit_tests.agents.utils import BaseSchema, load_spec
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from langchain_openai import ChatOpenAI
|
from langchain_openai import ChatOpenAI
|
||||||
except ImportError:
|
except ImportError:
|
||||||
skip_openai_integration_tests = True
|
skip_openai_integration_tests = True
|
||||||
else:
|
else:
|
||||||
skip_openai_integration_tests = False
|
skip_openai_integration_tests = "OPENAI_API_KEY" not in os.environ
|
||||||
|
|
||||||
AGENT_PROMPT = """
|
AGENT_PROMPT = """
|
||||||
You are a strict polling bot.
|
You are a strict polling bot.
|
||||||
@@ -33,10 +44,10 @@ class TestCase(BaseSchema):
|
|||||||
TEST_CASES = load_spec("return_direct", as_model=TestCase)
|
TEST_CASES = load_spec("return_direct", as_model=TestCase)
|
||||||
|
|
||||||
|
|
||||||
def _make_tool(*, return_direct: bool):
|
def _make_tool(*, return_direct: bool) -> dict[str, Any]:
|
||||||
attempts = 0
|
attempts = 0
|
||||||
|
|
||||||
def _side_effect():
|
def _side_effect() -> dict[str, Any]:
|
||||||
nonlocal attempts
|
nonlocal attempts
|
||||||
attempts += 1
|
attempts += 1
|
||||||
return {
|
return {
|
||||||
@@ -54,7 +65,7 @@ def _make_tool(*, return_direct: bool):
|
|||||||
),
|
),
|
||||||
return_direct=return_direct,
|
return_direct=return_direct,
|
||||||
)
|
)
|
||||||
def _wrapped():
|
def _wrapped() -> Any:
|
||||||
return mock()
|
return mock()
|
||||||
|
|
||||||
return {"tool": _wrapped, "mock": mock}
|
return {"tool": _wrapped, "mock": mock}
|
||||||
@@ -74,14 +85,14 @@ def test_return_direct_integration_matrix(case: TestCase) -> None:
|
|||||||
agent = create_agent(
|
agent = create_agent(
|
||||||
model,
|
model,
|
||||||
tools=[poll_tool["tool"]],
|
tools=[poll_tool["tool"]],
|
||||||
prompt=AGENT_PROMPT,
|
system_prompt=AGENT_PROMPT,
|
||||||
response_format=ToolStrategy(case.response_format),
|
response_format=ToolStrategy(case.response_format),
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
agent = create_agent(
|
agent = create_agent(
|
||||||
model,
|
model,
|
||||||
tools=[poll_tool["tool"]],
|
tools=[poll_tool["tool"]],
|
||||||
prompt=AGENT_PROMPT,
|
system_prompt=AGENT_PROMPT,
|
||||||
)
|
)
|
||||||
|
|
||||||
result = agent.invoke(
|
result = agent.invoke(
|
||||||
|
|||||||
Reference in New Issue
Block a user