Delete orphaned test_middleware.py
Middleware layer was removed in 78dc7e1 but test file remained, blocking full test suite collection.
This commit is contained in:
parent
edc1be4cc3
commit
44553ebcdb
@ -1,140 +0,0 @@
|
|||||||
"""
|
|
||||||
Test middleware system
|
|
||||||
"""
|
|
||||||
|
|
||||||
from unittest.mock import AsyncMock
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from mcesptool.middleware import LoggerInterceptor, MiddlewareFactory
|
|
||||||
|
|
||||||
|
|
||||||
class MockContext:
|
|
||||||
"""Mock FastMCP context for testing"""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.log = AsyncMock()
|
|
||||||
self.progress = AsyncMock()
|
|
||||||
self.request_user_input = AsyncMock()
|
|
||||||
self.sample = AsyncMock()
|
|
||||||
|
|
||||||
|
|
||||||
def test_middleware_factory_supported_tools():
|
|
||||||
"""Test middleware factory tool support"""
|
|
||||||
supported = MiddlewareFactory.get_supported_tools()
|
|
||||||
|
|
||||||
assert isinstance(supported, dict)
|
|
||||||
assert "esptool" in supported
|
|
||||||
assert isinstance(supported["esptool"], str)
|
|
||||||
|
|
||||||
|
|
||||||
def test_middleware_factory_tool_support_check():
|
|
||||||
"""Test tool support checking"""
|
|
||||||
assert MiddlewareFactory.is_tool_supported("esptool")
|
|
||||||
assert not MiddlewareFactory.is_tool_supported("nonexistent_tool")
|
|
||||||
|
|
||||||
|
|
||||||
def test_middleware_factory_create_esptool():
|
|
||||||
"""Test ESPTool middleware creation"""
|
|
||||||
context = MockContext()
|
|
||||||
|
|
||||||
middleware = MiddlewareFactory.create_esptool_middleware(context)
|
|
||||||
|
|
||||||
assert middleware is not None
|
|
||||||
assert middleware.context == context
|
|
||||||
assert middleware.operation_id.startswith("esptool_")
|
|
||||||
|
|
||||||
|
|
||||||
def test_middleware_factory_unsupported_tool():
|
|
||||||
"""Test error handling for unsupported tools"""
|
|
||||||
context = MockContext()
|
|
||||||
|
|
||||||
with pytest.raises(Exception): # Should raise ToolNotFoundError
|
|
||||||
MiddlewareFactory.create_middleware("unsupported_tool", context)
|
|
||||||
|
|
||||||
|
|
||||||
def test_middleware_info():
|
|
||||||
"""Test middleware information retrieval"""
|
|
||||||
info = MiddlewareFactory.get_middleware_info("esptool")
|
|
||||||
|
|
||||||
assert isinstance(info, dict)
|
|
||||||
assert info["tool_name"] == "esptool"
|
|
||||||
assert "middleware_class" in info
|
|
||||||
assert "description" in info
|
|
||||||
|
|
||||||
|
|
||||||
def test_logger_interceptor_capabilities():
|
|
||||||
"""Test logger interceptor capability detection"""
|
|
||||||
context = MockContext()
|
|
||||||
|
|
||||||
# Create a concrete implementation for testing
|
|
||||||
class TestInterceptor(LoggerInterceptor):
|
|
||||||
async def install_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def remove_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def get_interaction_points(self):
|
|
||||||
return ["test_operation"]
|
|
||||||
|
|
||||||
interceptor = TestInterceptor(context, "test_op")
|
|
||||||
|
|
||||||
assert interceptor.capabilities["logging"] is True
|
|
||||||
assert interceptor.capabilities["progress"] is True
|
|
||||||
assert interceptor.capabilities["elicitation"] is True
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
async def test_logger_interceptor_logging():
|
|
||||||
"""Test logger interceptor logging methods"""
|
|
||||||
context = MockContext()
|
|
||||||
|
|
||||||
class TestInterceptor(LoggerInterceptor):
|
|
||||||
async def install_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def remove_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def get_interaction_points(self):
|
|
||||||
return []
|
|
||||||
|
|
||||||
interceptor = TestInterceptor(context, "test_op")
|
|
||||||
|
|
||||||
# Test logging methods
|
|
||||||
await interceptor._log_info("Test info message")
|
|
||||||
await interceptor._log_warning("Test warning")
|
|
||||||
await interceptor._log_error("Test error")
|
|
||||||
await interceptor._log_success("Test success")
|
|
||||||
|
|
||||||
# Verify context.log was called
|
|
||||||
assert context.log.call_count == 4
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
async def test_logger_interceptor_progress():
|
|
||||||
"""Test logger interceptor progress tracking"""
|
|
||||||
context = MockContext()
|
|
||||||
|
|
||||||
class TestInterceptor(LoggerInterceptor):
|
|
||||||
async def install_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def remove_hooks(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def get_interaction_points(self):
|
|
||||||
return []
|
|
||||||
|
|
||||||
interceptor = TestInterceptor(context, "test_op")
|
|
||||||
|
|
||||||
# Test progress update
|
|
||||||
await interceptor._update_progress(50, "Half complete")
|
|
||||||
|
|
||||||
# Verify context.progress was called
|
|
||||||
context.progress.assert_called_once()
|
|
||||||
|
|
||||||
# Check progress history
|
|
||||||
assert len(interceptor.progress_history) == 1
|
|
||||||
assert interceptor.progress_history[0]["percentage"] == 50
|
|
||||||
Loading…
x
Reference in New Issue
Block a user