Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion libs/langchain_v1/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ ignore-var-parameters = true # ignore missing documentation for *args and **kwa
"ANN", # Annotations, 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_return_direct_spec.py" = ["F821"]
"tests/unit_tests/agents/test_react_agent.py" = ["ALL"]

"tests/*" = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
from __future__ import annotations

import os
from typing import (
Any,
)
from unittest.mock import MagicMock

import pytest
from langchain_core.messages import HumanMessage
from langchain_core.tools import tool

# Skip this test since langgraph.prebuilt.responses is not available
pytest.skip("langgraph.prebuilt.responses not available", allow_module_level=True)
from langchain.agents import create_agent
from langchain.agents.structured_output import (
ToolStrategy,
)
from tests.unit_tests.agents.utils import BaseSchema, load_spec

try:
from langchain_openai import ChatOpenAI
except ImportError:
skip_openai_integration_tests = True
else:
skip_openai_integration_tests = False
skip_openai_integration_tests = "OPENAI_API_KEY" not in os.environ

AGENT_PROMPT = """
You are a strict polling bot.
Expand All @@ -33,10 +44,10 @@ class TestCase(BaseSchema):
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

def _side_effect():
def _side_effect() -> dict[str, Any]:
nonlocal attempts
attempts += 1
return {
Expand All @@ -54,7 +65,7 @@ def _side_effect():
),
return_direct=return_direct,
)
def _wrapped():
def _wrapped() -> Any:
return mock()

return {"tool": _wrapped, "mock": mock}
Expand All @@ -74,14 +85,14 @@ def test_return_direct_integration_matrix(case: TestCase) -> None:
agent = create_agent(
model,
tools=[poll_tool["tool"]],
prompt=AGENT_PROMPT,
system_prompt=AGENT_PROMPT,
response_format=ToolStrategy(case.response_format),
)
else:
agent = create_agent(
model,
tools=[poll_tool["tool"]],
prompt=AGENT_PROMPT,
system_prompt=AGENT_PROMPT,
)

result = agent.invoke(
Expand Down