Skip to main content
Glama
test_virtual_robotics.py2.62 kB
"""Unit tests for virtual robotics tool.""" import pytest from robotics_mcp.tools.virtual_robotics import VirtualRoboticsTool from robotics_mcp.utils.state_manager import RobotStateManager from unittest.mock import Mock, AsyncMock, patch @pytest.fixture def mock_mcp(): """Create mock MCP server.""" mcp = Mock() return mcp @pytest.fixture def virtual_robotics_tool(mock_mcp, state_manager): """Create virtual robotics tool instance.""" return VirtualRoboticsTool(mock_mcp, state_manager) @pytest.mark.asyncio async def test_spawn_robot_registration(virtual_robotics_tool, state_manager): """Test that spawning robot registers it in state manager.""" result = await virtual_robotics_tool._spawn_robot( robot_type="scout", robot_id="test_scout", position={"x": 0, "y": 0, "z": 0}, scale=1.0, platform="vrchat", ) assert result["status"] == "success" robot = state_manager.get_robot("test_scout") assert robot is not None assert robot.robot_type == "scout" assert robot.platform == "vrchat" @pytest.mark.asyncio async def test_spawn_robot_auto_id(virtual_robotics_tool, state_manager): """Test auto-generation of robot ID.""" result = await virtual_robotics_tool._spawn_robot( robot_type="scout", robot_id=None, position={"x": 0, "y": 0, "z": 0}, scale=1.0, platform="unity", ) assert result["status"] == "success" assert "robot_id" in result assert result["robot_id"].startswith("vbot_scout") @pytest.mark.asyncio async def test_get_status(virtual_robotics_tool, state_manager): """Test getting virtual robot status.""" # Register robot first robot = state_manager.register_robot("test_scout", "scout", platform="unity") result = await virtual_robotics_tool._get_status("test_scout") assert result["status"] == "success" assert result["robot"]["robot_id"] == "test_scout" @pytest.mark.asyncio async def test_get_status_not_found(virtual_robotics_tool): """Test getting status for non-existent robot.""" result = await virtual_robotics_tool._get_status("nonexistent") assert result["status"] == "error" assert "not found" in result["message"].lower() @pytest.mark.asyncio async def test_set_scale(virtual_robotics_tool, state_manager): """Test setting robot scale.""" state_manager.register_robot("test_scout", "scout", platform="unity") result = await virtual_robotics_tool._set_scale("test_scout", scale=2.0) assert result["status"] == "success" assert result["scale"] == 2.0

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/sandraschi/robotics-mcp'

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