Files
zeekay d094a8b481 rebrand: rename litellm module to llm — complete purge
All imports, test files, docs, and config references updated.
import litellm → import llm across entire codebase.
2026-02-25 15:13:14 -08:00

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!")