From a40334312fe6cc2e6b69ad377f306bd5fbd6c508 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 29 May 2026 09:24:58 -0400 Subject: [PATCH] test(trash): update delete-tool tests to soft-delete contract (patch trash_svc.delete) --- tests/test_mcp_tool_events.py | 14 +++++--------- tests/test_mcp_tool_notes.py | 12 ++++++------ tests/test_mcp_tool_rulebooks.py | 9 +++++---- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/tests/test_mcp_tool_events.py b/tests/test_mcp_tool_events.py index d0cc239..c980d8b 100644 --- a/tests/test_mcp_tool_events.py +++ b/tests/test_mcp_tool_events.py @@ -139,23 +139,19 @@ async def test_update_event_raises_when_not_found(): @pytest.mark.asyncio -async def test_delete_event_checks_existence_then_returns_confirmation(): - fake = _fake_event() +async def test_delete_event_soft_deletes_and_returns_batch(): with patch( - "fabledassistant.mcp.tools.events.events_svc.get_event", - AsyncMock(return_value=fake), - ), patch( - "fabledassistant.mcp.tools.events.events_svc.delete_event", - AsyncMock(return_value=None), + "fabledassistant.mcp.tools.events.trash_svc.delete", + AsyncMock(return_value="batch-1"), ): result = await delete_event(event_id=7) - assert result == "Event 7 deleted." + assert result["deleted_batch_id"] == "batch-1" @pytest.mark.asyncio async def test_delete_event_raises_when_not_found(): with patch( - "fabledassistant.mcp.tools.events.events_svc.get_event", + "fabledassistant.mcp.tools.events.trash_svc.delete", AsyncMock(return_value=None), ): with pytest.raises(ValueError, match="event 999 not found"): diff --git a/tests/test_mcp_tool_notes.py b/tests/test_mcp_tool_notes.py index c0010d8..0b80543 100644 --- a/tests/test_mcp_tool_notes.py +++ b/tests/test_mcp_tool_notes.py @@ -165,20 +165,20 @@ async def test_update_note_raises_when_not_found(): @pytest.mark.asyncio -async def test_delete_note_returns_confirmation_string(): +async def test_delete_note_soft_deletes_and_returns_batch(): with patch( - "fabledassistant.mcp.tools.notes.notes_svc.delete_note", - AsyncMock(return_value=True), + "fabledassistant.mcp.tools.notes.trash_svc.delete", + AsyncMock(return_value="batch-1"), ): result = await delete_note(note_id=7) - assert result == "Note 7 deleted." + assert result["deleted_batch_id"] == "batch-1" @pytest.mark.asyncio async def test_delete_note_raises_when_not_found(): with patch( - "fabledassistant.mcp.tools.notes.notes_svc.delete_note", - AsyncMock(return_value=False), + "fabledassistant.mcp.tools.notes.trash_svc.delete", + AsyncMock(return_value=None), ): with pytest.raises(ValueError, match="note 999 not found"): await delete_note(note_id=999) diff --git a/tests/test_mcp_tool_rulebooks.py b/tests/test_mcp_tool_rulebooks.py index 84e5d55..3c4ad08 100644 --- a/tests/test_mcp_tool_rulebooks.py +++ b/tests/test_mcp_tool_rulebooks.py @@ -125,19 +125,20 @@ async def test_delete_rule_without_confirmed_returns_warning(): @pytest.mark.asyncio -async def test_delete_rule_with_confirmed_calls_service(): +async def test_delete_rule_with_confirmed_soft_deletes(): rule = _fake_rule() - mock_delete = AsyncMock() + mock_delete = AsyncMock(return_value="batch-1") with patch( "fabledassistant.mcp.tools.rulebooks.rulebooks_svc.get_rule", AsyncMock(return_value=rule), ), patch( - "fabledassistant.mcp.tools.rulebooks.rulebooks_svc.delete_rule", + "fabledassistant.mcp.tools.rulebooks.trash_svc.delete", mock_delete, ): from fabledassistant.mcp.tools.rulebooks import delete_rule out = await delete_rule(rule_id=1, confirmed=True) - assert out == {"deleted": 1} + assert out["deleted"] == 1 + assert out["deleted_batch_id"] == "batch-1" assert mock_delete.called