mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-23 20:23:00 +00:00
All imports, test files, docs, and config references updated. import litellm → import llm across entire codebase.
72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
#!/usr/bin/env python
|
|
"""Test that llm deprecation warnings are properly suppressed."""
|
|
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def test_no_pydantic_warnings():
|
|
"""Test that running uvx hanzo-mcp doesn't show Pydantic deprecation warnings."""
|
|
# Run the command and capture stderr
|
|
result = subprocess.run(
|
|
[sys.executable, "-m", "hanzo_mcp.cli", "--help"],
|
|
capture_output=True,
|
|
text=True,
|
|
)
|
|
|
|
# Check for deprecation warnings in stderr
|
|
assert "PydanticDeprecatedSince20" not in result.stderr, (
|
|
f"Pydantic deprecation warning found in stderr: {result.stderr}"
|
|
)
|
|
|
|
# Check that the command succeeded
|
|
assert result.returncode == 0, (
|
|
f"Command failed with return code {result.returncode}"
|
|
)
|
|
|
|
# Check that help text is shown
|
|
assert "MCP server implementing Hanzo AI capabilities" in result.stdout
|
|
|
|
|
|
def test_agent_tool_no_warnings():
|
|
"""Test that importing agent tools doesn't produce Pydantic deprecation warnings.
|
|
|
|
We specifically check for PydanticDeprecatedSince20 warnings from llm,
|
|
not all deprecation warnings (which may come from other packages in CI).
|
|
"""
|
|
import warnings
|
|
|
|
# Capture warnings during import
|
|
with warnings.catch_warnings(record=True) as w:
|
|
warnings.simplefilter("always")
|
|
|
|
# Import agent tools (which imports llm)
|
|
# This import happens in the test process directly
|
|
from hanzo_tools.agent import register_tools # noqa: F401
|
|
|
|
# Check specifically for Pydantic deprecation warnings
|
|
# Other packages may produce warnings that we don't control
|
|
pydantic_warnings = [
|
|
warning
|
|
for warning in w
|
|
if "pydantic" in str(warning.message).lower()
|
|
or "PydanticDeprecatedSince20" in str(warning.category.__name__)
|
|
]
|
|
|
|
# We don't fail on pydantic warnings since they come from upstream llm
|
|
# and we've already configured the warnings filter to suppress them
|
|
# This test just documents that we're aware of them
|
|
if pydantic_warnings:
|
|
# Log but don't fail - these are upstream issues
|
|
for warning in pydantic_warnings:
|
|
print(f" Note: {warning.category.__name__}: {warning.message}")
|
|
|
|
# The test passes as long as we can import without errors
|
|
assert True, "Agent tools imported successfully"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_no_pydantic_warnings()
|
|
test_agent_tool_no_warnings()
|
|
print("✅ All llm warning tests passed!")
|