Skip to content

Enable parallel tests on Windows#2715

Merged
jlowin merged 1 commit intomainfrom
windows-parallel-tests
Dec 24, 2025
Merged

Enable parallel tests on Windows#2715
jlowin merged 1 commit intomainfrom
windows-parallel-tests

Conversation

@jlowin
Copy link
Copy Markdown
Member

@jlowin jlowin commented Dec 24, 2025

Now that the problematic stdio subprocess tests are skipped on Windows, perhaps we can re-enable parallel test execution. (#2714, #2711)

@marvin-context-protocol marvin-context-protocol Bot added enhancement Improvement to existing functionality. For issues and smaller PR improvements. tests labels Dec 24, 2025
@jlowin jlowin merged commit dab7200 into main Dec 24, 2025
20 checks passed
@jlowin jlowin deleted the windows-parallel-tests branch December 24, 2025 21:45
@marvin-context-protocol
Copy link
Copy Markdown
Contributor

Test Failure Analysis

Summary: The integration test test_call_tool_list_commits failed with a timeout due to a 429 Too Many Requests error from GitHub Copilot's MCP API.

Root Cause: The test is hitting GitHub Copilot's remote MCP endpoint (https://api.githubcopilot.com/mcp/) which is returning a 429 rate limit error. The test times out after 30 seconds while waiting for a response that never completes due to the rate limiting. This is not related to the changes in PR #2715 (enabling parallel tests on Windows) - the Windows tests passed successfully with 3157 tests.

Suggested Solution:

  1. Skip or mark as flaky: Add a retry mechanism or mark this test as flaky since it depends on an external service that may rate limit
  2. Add exponential backoff: Implement retry logic with exponential backoff for the GitHub Copilot MCP integration tests
  3. Mock the endpoint: Consider using a mocked version of the GitHub Copilot MCP API for tests to avoid external dependencies

The good news: PR #2715's main objective succeeded - parallel tests now work on Windows (3157 tests passed).

Detailed Analysis

From the logs:

ERROR   asyncio:base_events.py:1758 unhandled exception during asyncio.run() shutdown
task: <Task finished name='Task-6' coro=<TestGithubMCPRemote.test_call_tool_list_commits() done, defined at /home/runner/work/fastmcp/fastmcp/tests/integration_tests/test_github_mcp_remote.py:99> exception=HTTPStatusError("Client error '429 Too Many Requests' for url 'https://api.githubcopilot.com/mcp/'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429")>

The test timed out waiting for a response from the GitHub Copilot MCP API, which returned a 429 status code indicating rate limiting. The pytest timeout (30s) was exceeded while the async selector was blocked waiting for I/O.

Related Files
  • tests/integration_tests/test_github_mcp_remote.py:99-124 - The failing test method that calls the GitHub Copilot MCP API
  • .github/workflows/run-tests.yml - CI workflow that runs integration tests with --timeout=30 and --maxprocesses 2

@jlowin jlowin added the ignore in release notes Minor change for release notes. Use sparingly for meta PRs like workflow tests. label Dec 25, 2025
jlowin added a commit that referenced this pull request Dec 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Improvement to existing functionality. For issues and smaller PR improvements. ignore in release notes Minor change for release notes. Use sparingly for meta PRs like workflow tests. tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant