summaryrefslogtreecommitdiff
path: root/servers/gitlab_glab/tests/test_integration.py
diff options
context:
space:
mode:
authorDawid Rycerz <dawid@rycerz.xyz>2025-03-28 21:39:04 +0100
committerDawid Rycerz <dawid@rycerz.xyz>2025-03-28 21:39:04 +0100
commit903f0d9ca388533ab44615e414379fa5b305a7d1 (patch)
treed4225b3b07e11792d06660b31da97f786b5578e9 /servers/gitlab_glab/tests/test_integration.py
parent1745749cd2745c94c3f852e9c02dfde19d8d9c20 (diff)
Add basic glab mcp server
Diffstat (limited to 'servers/gitlab_glab/tests/test_integration.py')
-rw-r--r--servers/gitlab_glab/tests/test_integration.py85
1 files changed, 85 insertions, 0 deletions
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