Skip to main content
Glama
test_tools.py4.05 kB
"""Tests for torna-mcp tools.""" import os from unittest.mock import MagicMock, patch import pytest from torna_mcp.models import DocGetInput, DocPushInput, HttpMethod, ResponseFormat class TestDocPushInput: """Test cases for DocPushInput model.""" def test_valid_doc_push_input(self): """Test creating valid DocPushInput.""" data = {"name": "Test API", "url": "/api/test", "http_method": "GET"} input_data = DocPushInput(**data) assert input_data.name == "Test API" assert input_data.url == "/api/test" assert input_data.http_method == HttpMethod.GET assert input_data.is_folder is False def test_folder_creation(self): """Test creating a folder/category.""" data = { "name": "API Category", "url": "", "http_method": "GET", "is_folder": True, } input_data = DocPushInput(**data) assert input_data.is_folder is True assert input_data.url == "" def test_optional_params(self): """Test optional parameters.""" data = { "name": "Test API", "url": "/api/test", "http_method": "POST", "description": "A test API", "content_type": "application/xml", "author": "Test Author", } input_data = DocPushInput(**data) assert input_data.description == "A test API" assert input_data.content_type == "application/xml" assert input_data.author == "Test Author" class TestDocGetInput: """Test cases for DocGetInput model.""" def test_valid_doc_get_input(self): """Test creating valid DocGetInput.""" data = {"doc_id": "test-doc-id"} input_data = DocGetInput(**data) assert input_data.doc_id == "test-doc-id" class TestTools: """Test cases for tool functions.""" def test_format_doc_push_data(self): """Test formatting doc push data.""" from torna_mcp.server import _format_doc_push_data # Test data formatting logic data = {"name": "Test API", "url": "/api/test", "http_method": "GET"} input_data = DocPushInput(**data) formatted = _format_doc_push_data(input_data) # Verify basic structure assert "apis" in formatted assert len(formatted["apis"]) == 1 assert formatted["apis"][0]["name"] == "Test API" assert formatted["apis"][0]["url"] == "/api/test" assert formatted["apis"][0]["httpMethod"] == "GET" assert formatted["apis"][0]["contentType"] == "application/json" assert formatted["apis"][0]["isFolder"] is False assert formatted["apis"][0]["isShow"] is True def test_format_doc_push_data_with_optional_params(self): """Test formatting doc push data with optional parameters.""" from torna_mcp.server import _format_doc_push_data data = { "name": "Test API with Params", "url": "/api/test", "http_method": "POST", "description": "API description", "content_type": "application/xml", "request_params": [ {"name": "userId", "type": "int", "description": "User ID"} ], "response_params": [ {"name": "success", "type": "bool", "description": "Success flag"} ], "author": "Test Author", } input_data = DocPushInput(**data) formatted = _format_doc_push_data(input_data) # Verify all parameters are included assert formatted["apis"][0]["name"] == "Test API with Params" assert formatted["apis"][0]["description"] == "API description" assert formatted["apis"][0]["httpMethod"] == "POST" assert formatted["apis"][0]["contentType"] == "application/xml" assert formatted["apis"][0]["author"] == "Test Author" assert len(formatted["apis"][0]["requestParams"]) == 1 assert len(formatted["apis"][0]["responseParams"]) == 1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/li7hai26/torna-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server