Every tool now returns a structured BaseModel instead of dict[str, Any], giving callers attribute access, IDE autocomplete, and schema validation. Adds ~30 model classes to models.py and updates all test assertions.
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""Tests for server-level tools (config, help resource)."""
|
|
|
|
|
|
class TestConfigStatus:
|
|
async def test_status(self, server):
|
|
result = await server.config_status()
|
|
assert hasattr(result, "developer_mode")
|
|
assert hasattr(result, "auto_select_single_device")
|
|
assert hasattr(result, "current_device")
|
|
|
|
async def test_reflects_current_device(self, server):
|
|
server.set_current_device("ABC123")
|
|
result = await server.config_status()
|
|
assert result.current_device == "ABC123"
|
|
|
|
|
|
class TestConfigSetDeveloperMode:
|
|
async def test_enable(self, server):
|
|
result = await server.config_set_developer_mode(True)
|
|
assert result.success is True
|
|
assert result.developer_mode is True
|
|
|
|
async def test_disable(self, server):
|
|
result = await server.config_set_developer_mode(False)
|
|
assert result.developer_mode is False
|
|
|
|
|
|
class TestConfigSetScreenshotDir:
|
|
async def test_set(self, server):
|
|
result = await server.config_set_screenshot_dir("/tmp/shots")
|
|
assert result.success is True
|
|
assert result.screenshot_dir == "/tmp/shots"
|
|
|
|
async def test_clear(self, server):
|
|
result = await server.config_set_screenshot_dir(None)
|
|
assert result.screenshot_dir is None
|