community[patch]: Fix Playwright Tools bug with Pydantic schemas (#27050)

- Add tests for Playwright tools schema serialization
- Introduce base empty args Input class for BaseBrowserTool

Test Plan: `poetry run pytest
tests/unit_tests/tools/playwright/test_all.py`

Fixes #26758

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
This commit is contained in:
Sergey Ryabov
2024-10-30 23:45:36 +00:00
committed by GitHub
parent 92024d0d7d
commit 8180637345
6 changed files with 42 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
"""Test Playwright's Tools."""
from unittest.mock import Mock
import pytest
from langchain_community.agent_toolkits import PlayWrightBrowserToolkit
@pytest.mark.requires("playwright")
@pytest.mark.requires("bs4")
def test_playwright_tools_schemas() -> None:
"""Test calling 'tool_call_schema' for every tool to check to init issues."""
from playwright.sync_api import Browser
sync_browser = Mock(spec=Browser)
tools = PlayWrightBrowserToolkit.from_browser(sync_browser=sync_browser).get_tools()
for tool in tools:
try:
tool.tool_call_schema
except Exception as e:
raise AssertionError(
f"Error for '{tool.name}' tool: {type(e).__name__}: {e}"
) from e