mirror of
https://github.com/jmagar/unraid-mcp.git
synced 2026-03-23 12:39:24 -07:00
fix: flash_backup validation, smoke test assertions, docker/notification test coverage
- storage.py: validate initiateFlashBackup response before returning success=True - test-tools.sh: remove set -e/inherit_errexit; add success assertion to smoke tests - test_destructive_guards.py: add confirm-guard tests for new docker destructive actions - test_docker.py: assert mutation variables in organizer tests; add items branch test - test_query_validation.py: add 5 missing notification mutation schema test methods - test_notifications.py: use lowercase importance to test uppercasing logic Resolves review threads PRRT_kwDOO6Hdxs50FgPb PRRT_kwDOO6Hdxs50FgO4 PRRT_kwDOO6Hdxs50FgO8 PRRT_kwDOO6Hdxs50FgPI PRRT_kwDOO6Hdxs50FgPL PRRT_kwDOO6Hdxs50FgPm PRRT_kwDOO6Hdxs50E2iK PRRT_kwDOO6Hdxs50E2im
This commit is contained in:
@@ -148,6 +148,8 @@ _DESTRUCTIVE_TEST_CASES: list[tuple[str, str, dict]] = [
|
||||
# Docker
|
||||
("docker", "remove", {"container_id": "abc123"}),
|
||||
("docker", "update_all", {}),
|
||||
("docker", "delete_entries", {"entry_ids": ["e1"]}),
|
||||
("docker", "reset_template_mappings", {}),
|
||||
# VM
|
||||
("vm", "force_stop", {"vm_id": "test-vm-uuid"}),
|
||||
("vm", "reset", {"vm_id": "test-vm-uuid"}),
|
||||
@@ -290,6 +292,28 @@ class TestConfirmAllowsExecution:
|
||||
assert result["success"] is True
|
||||
assert result["action"] == "update_all"
|
||||
|
||||
async def test_docker_delete_entries_with_confirm(
|
||||
self, _mock_docker_graphql: AsyncMock
|
||||
) -> None:
|
||||
organizer_response = {
|
||||
"version": 1.0,
|
||||
"views": [{"id": "default", "name": "Default", "rootId": "root", "flatEntries": []}],
|
||||
}
|
||||
_mock_docker_graphql.return_value = {"deleteDockerEntries": organizer_response}
|
||||
tool_fn = make_tool_fn("unraid_mcp.tools.docker", "register_docker_tool", "unraid_docker")
|
||||
result = await tool_fn(action="delete_entries", entry_ids=["e1"], confirm=True)
|
||||
assert result["success"] is True
|
||||
assert result["action"] == "delete_entries"
|
||||
|
||||
async def test_docker_reset_template_mappings_with_confirm(
|
||||
self, _mock_docker_graphql: AsyncMock
|
||||
) -> None:
|
||||
_mock_docker_graphql.return_value = {"resetDockerTemplateMappings": True}
|
||||
tool_fn = make_tool_fn("unraid_mcp.tools.docker", "register_docker_tool", "unraid_docker")
|
||||
result = await tool_fn(action="reset_template_mappings", confirm=True)
|
||||
assert result["success"] is True
|
||||
assert result["action"] == "reset_template_mappings"
|
||||
|
||||
async def test_docker_remove_with_confirm(self, _mock_docker_graphql: AsyncMock) -> None:
|
||||
cid = "a" * 64 + ":local"
|
||||
_mock_docker_graphql.side_effect = [
|
||||
|
||||
Reference in New Issue
Block a user