diff --git a/libs/langchain_v1/pyproject.toml b/libs/langchain_v1/pyproject.toml index ed8524981f38c..c14559070948c 100644 --- a/libs/langchain_v1/pyproject.toml +++ b/libs/langchain_v1/pyproject.toml @@ -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/*" = [ diff --git a/libs/langchain_v1/tests/unit_tests/agents/test_return_direct_spec.py b/libs/langchain_v1/tests/unit_tests/agents/test_return_direct_spec.py index ca1ba39f2a20f..691106251c727 100644 --- a/libs/langchain_v1/tests/unit_tests/agents/test_return_direct_spec.py +++ b/libs/langchain_v1/tests/unit_tests/agents/test_return_direct_spec.py @@ -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. @@ -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 { @@ -54,7 +65,7 @@ def _side_effect(): ), return_direct=return_direct, ) - def _wrapped(): + def _wrapped() -> Any: return mock() return {"tool": _wrapped, "mock": mock} @@ -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(