todo-backend / Chatbot /test_simple.py
Fizu123's picture
BACKEND FIX: Filter by credential provider during login
08af9fd
"""
Simple test to verify MCP tools are working.
"""
from unittest.mock import MagicMock, patch
from backend.mcp_server.tools.add_task import add_task
# Test add_task
print("Testing add_task tool:")
mock_task = MagicMock()
mock_task.id = 1
mock_task.title = "Test task from script"
mock_task.description = "This is a test task created via script"
mock_task.completed = False
with patch('backend.mcp_server.tools.add_task.get_engine') as mock_get_engine, \
patch('backend.mcp_server.tools.add_task.Session') as mock_session_class:
mock_get_engine.return_value = MagicMock()
mock_session = MagicMock()
mock_session_class.return_value.__enter__.return_value = mock_session
mock_session_class.return_value.__exit__.return_value = False
mock_session.add.return_value = None
mock_session.commit.return_value = None
mock_session.refresh.side_effect = lambda task: setattr(task, 'id', 1)
result = add_task(
user_id="test_user_123",
title="Test task from script",
description="This is a test task created via script"
)
print(f"Add task result: {result}")
if result["success"]:
task_id = result["data"]["task_id"]
print(f"SUCCESS: Task created with ID: {task_id}")
# Test list_tasks
print("\nTesting list_tasks tool:")
from backend.mcp_server.tools.list_tasks import list_tasks
with patch('backend.mcp_server.tools.list_tasks.get_engine'), \
patch('backend.mcp_server.tools.list_tasks.Session') as mock_session_class, \
patch('backend.mcp_server.tools.list_tasks.select'):
mock_session = MagicMock()
mock_session_class.return_value.__enter__.return_value = mock_session
mock_session_class.return_value.__exit__.return_value = False
mock_tasks = [MagicMock()]
mock_tasks[0].id = task_id
mock_tasks[0].title = "Test task from script"
mock_tasks[0].completed = False
mock_tasks[0].created_at = "2023-01-01T00:00:00"
mock_result = MagicMock()
mock_result.all.return_value = mock_tasks
mock_session.exec.return_value = mock_result
result = list_tasks(user_id="test_user_123", status="all")
print(f"SUCCESS: List tasks found {result['data']['total']} task(s)")
# Test complete_task
print("\nTesting complete_task tool:")
from backend.mcp_server.tools.complete_task import complete_task
with patch('backend.mcp_server.tools.complete_task.get_engine'), \
patch('backend.mcp_server.tools.complete_task.Session') as mock_session_class, \
patch('backend.mcp_server.tools.complete_task.select'):
mock_session = MagicMock()
mock_session_class.return_value.__enter__.return_value = mock_session
mock_session_class.return_value.__exit__.return_value = False
mock_session.exec.return_value.first.return_value = mock_task
result = complete_task(user_id="test_user_123", task_id=task_id)
print(f"SUCCESS: Complete task result - {result['data']['status']}")
# Test delete_task
print("\nTesting delete_task tool:")
from backend.mcp_server.tools.delete_task import delete_task
with patch('backend.mcp_server.tools.delete_task.get_engine'), \
patch('backend.mcp_server.tools.delete_task.Session') as mock_session_class, \
patch('backend.mcp_server.tools.delete_task.select'):
mock_session = MagicMock()
mock_session_class.return_value.__enter__.return_value = mock_session
mock_session_class.return_value.__exit__.return_value = False
mock_session.exec.return_value.first.return_value = mock_task
result = delete_task(user_id="test_user_123", task_id=task_id)
print(f"SUCCESS: Delete task result - {result['data']['status']}")
else:
print("FAILED: Could not create task")
print("\nAll MCP tools are working correctly!")
print("They just need a real database connection to function in production.")