Skip to main content
Glama
test_rendering_freezing.py4.69 kB
"""Test rendering and freezing operations""" import pytest import pytest_asyncio import asyncio from .test_utils import ( ensure_clean_project, create_track_with_verification, create_media_item_with_verification, assert_response_contains, assert_response_success ) @pytest.mark.asyncio async def test_track_freeze_operations(reaper_mcp_client): """Test track freezing and unfreezing""" # Ensure clean project state await ensure_clean_project(reaper_mcp_client) # Create a track and get its actual index track_index = await create_track_with_verification(reaper_mcp_client) # Add an FX to the track result = await reaper_mcp_client.call_tool( "track_fx_add_by_name", {"track_index": track_index, "fx_name": "ReaEQ", "instantiate": False} ) # Add a media item item_index = await create_media_item_with_verification(reaper_mcp_client, track_index) # Check freeze state (should be unfrozen) result = await reaper_mcp_client.call_tool( "is_track_frozen", {"track_index": track_index} ) assert_response_contains(result, "Track frozen: False") # Freeze the track result = await reaper_mcp_client.call_tool( "freeze_track", {"track_index": track_index} ) assert_response_contains(result, f"Froze track {track_index}") # Check freeze state (should be frozen) result = await reaper_mcp_client.call_tool( "is_track_frozen", {"track_index": track_index} ) assert_response_contains(result, "Track frozen: True") # Unfreeze the track result = await reaper_mcp_client.call_tool( "unfreeze_track", {"track_index": track_index} ) assert_response_contains(result, f"Unfroze track {track_index}") @pytest.mark.asyncio async def test_render_time_selection(reaper_mcp_client): """Test rendering time selection""" # Create a track with media result = await reaper_mcp_client.call_tool( "insert_track_at_index", {"index": 0, "want_defaults": True} ) assert "Successfully inserted track" in result.content[0].text # Add a media item result = await reaper_mcp_client.call_tool( "add_media_item_to_track", {"track_index": 0} ) assert "Added media item" in result.content[0].text # Set time selection result = await reaper_mcp_client.call_tool( "get_set_loop_time_range", { "is_set": True, "is_loop": False, "start": 2.0, "end": 8.0, "allow_autoseek": False } ) # Render time selection to new track result = await reaper_mcp_client.call_tool( "render_time_selection", {"add_to_project": True} ) assert "Rendered time selection to new track" in result.content[0].text @pytest.mark.asyncio async def test_apply_fx_to_items(reaper_mcp_client): """Test applying FX to items destructively""" # Create a track result = await reaper_mcp_client.call_tool( "insert_track_at_index", {"index": 0, "want_defaults": True} ) assert "Successfully inserted track" in result.content[0].text # Add an FX result = await reaper_mcp_client.call_tool( "track_fx_add_by_name", {"track_index": 0, "fx_name": "ReaEQ", "instantiate": False} ) # Add media items for i in range(3): result = await reaper_mcp_client.call_tool( "add_media_item_to_track", {"track_index": 0} ) assert "Added media item" in result.content[0].text # Apply FX to items result = await reaper_mcp_client.call_tool( "apply_fx_to_items", {"track_index": 0} ) assert "Applied FX to items on track 0" in result.content[0].text @pytest.mark.asyncio async def test_project_render(reaper_mcp_client): """Test project rendering""" # Create some content result = await reaper_mcp_client.call_tool( "insert_track_at_index", {"index": 0, "want_defaults": True} ) assert "Successfully inserted track" in result.content[0].text # Add a media item result = await reaper_mcp_client.call_tool( "add_media_item_to_track", {"track_index": 0} ) assert "Added media item" in result.content[0].text # Note: Actual rendering would open dialog, so we just test the call result = await reaper_mcp_client.call_tool( "render_project", {"bounds": "entire_project"} ) assert "Started render dialog" in result.content[0].text or "Failed" in result.content[0].text

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/shiehn/total-reaper-mcp'

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