python-sdk/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Soria Parra 827e494df4
feat: add request cancellation and in-flight request tracking
This commit adds support for request cancellation and tracking of
in-flight requests in the MCP protocol implementation. The key
architectural changes are:

1. Request Lifecycle Management:
   - Added _in_flight dictionary to BaseSession to track active requests
   - Requests are tracked from receipt until completion/cancellation
   - Added proper cleanup via on_complete callback

2. Cancellation Support:
   - Added CancelledNotification handling in _receive_loop
   - Implemented cancel() method in RequestResponder
   - Uses anyio.CancelScope for robust cancellation
   - Sends error response on cancellation

3. Request Context:
   - Added request_ctx ContextVar for request context
   - Ensures proper cleanup after request handling
   - Maintains request state throughout lifecycle

4. Error Handling:
   - Improved error propagation for cancelled requests
   - Added proper cleanup of cancelled requests
   - Maintains consistency of in-flight tracking

This change enables clients to cancel long-running requests and
servers to properly clean up resources when requests are cancelled.

Github-Issue:#88
2025-02-03 20:50:05 +00:00
..
client test_sse_connection is passing 2025-01-14 10:18:27 -05:00
issues tests for issue 88 2025-02-03 14:03:41 +00:00
server Fix comment about pydantic versioning 2025-01-30 10:21:03 -05:00
shared feat: add request cancellation and in-flight request tracking 2025-02-03 20:50:05 +00:00
__init__.py Initial import 2024-09-24 22:04:19 +01:00
conftest.py fix pydantic version 2024-12-21 01:04:30 +00:00
test_examples.py fix tests 2024-12-21 01:17:59 +00:00
test_types.py style: Fix imports and line length formatting 2024-12-21 00:46:36 +00:00