From 903f0d9ca388533ab44615e414379fa5b305a7d1 Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Fri, 28 Mar 2025 21:39:04 +0100 Subject: Add basic glab mcp server --- servers/gitlab_glab/tests/test_integration.py | 85 +++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 servers/gitlab_glab/tests/test_integration.py (limited to 'servers/gitlab_glab/tests/test_integration.py') diff --git a/servers/gitlab_glab/tests/test_integration.py b/servers/gitlab_glab/tests/test_integration.py new file mode 100644 index 0000000..3bad1cc --- /dev/null +++ b/servers/gitlab_glab/tests/test_integration.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +"""Integration tests for the GitLab CLI MCP server.""" + +from unittest.mock import AsyncMock, MagicMock, patch + +from mcp_server_gitlab_glab.server import create_server, main + + +class TestIntegration: + """Integration tests for the GitLab CLI MCP server.""" + + @patch("mcp_server_gitlab_glab.server.FastMCP") + def test_create_server(self, mock_fastmcp: MagicMock) -> None: + """Test server creation with default parameters.""" + # Mock FastMCP instance + mock_server = MagicMock() + mock_fastmcp.return_value = mock_server + + # Call create_server + create_server() + + # Verify FastMCP was created with correct parameters + mock_fastmcp.assert_called_once_with("GitLab CLI", host="127.0.0.1", port=8080) + + # Verify tools were registered + assert mock_server.tool.call_count == 2 + + @patch("mcp_server_gitlab_glab.server.FastMCP") + def test_create_server_custom_params(self, mock_fastmcp: MagicMock) -> None: + """Test server creation with custom parameters.""" + # Mock FastMCP instance + mock_server = MagicMock() + mock_fastmcp.return_value = mock_server + + # Call create_server with custom parameters + create_server(host="0.0.0.0", port=9000) + + # Verify FastMCP was created with correct parameters + mock_fastmcp.assert_called_once_with("GitLab CLI", host="0.0.0.0", port=9000) + + @patch("mcp_server_gitlab_glab.server.create_server") + @patch("mcp_server_gitlab_glab.server.logger") + async def test_main_stdio( + self, mock_logger: MagicMock, mock_create_server: MagicMock + ) -> None: + """Test main function with stdio transport.""" + # Mock server + mock_server = AsyncMock() + mock_create_server.return_value = mock_server + + # Call main with stdio transport + await main("stdio", "127.0.0.1", 8080) + + # Verify server was created with correct parameters + mock_create_server.assert_called_once_with(host="127.0.0.1", port=8080) + + # Verify stdio transport was used + mock_server.run_stdio_async.assert_called_once() + mock_server.run_sse_async.assert_not_called() + + # Verify logging + assert mock_logger.info.call_count >= 2 + + @patch("mcp_server_gitlab_glab.server.create_server") + @patch("mcp_server_gitlab_glab.server.logger") + async def test_main_remote( + self, mock_logger: MagicMock, mock_create_server: MagicMock + ) -> None: + """Test main function with remote transport.""" + # Mock server + mock_server = AsyncMock() + mock_create_server.return_value = mock_server + + # Call main with remote transport + await main("remote", "0.0.0.0", 9000) + + # Verify server was created with correct parameters + mock_create_server.assert_called_once_with(host="0.0.0.0", port=9000) + + # Verify remote transport was used + mock_server.run_stdio_async.assert_not_called() + mock_server.run_sse_async.assert_called_once() + + # Verify logging + assert mock_logger.info.call_count >= 2 -- cgit v1.2.3