Skip to content

Conversation

@alexander-alderman-webb
Copy link
Contributor

@alexander-alderman-webb alexander-alderman-webb commented Jan 30, 2026

Description

Stop mocking transport layer of mcp package in tests.

The SSE server and client are run in-process by using an in-memory object queue to pass messages.

Issues

Reminders

@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • feat(span-streaming): Add experimental trace_lifecycle switch (1) by sentrivana in #5397

Bug Fixes 🐛

  • fix(arq): handle settings_cls passed as keyword argument by nc9 in #5393
  • fix(dramatiq): cleanup isolated scope and transaction when message is skipped by frankie567 in #5346
  • fix(google-genai): deactivate google genai when langchain is used by shellmayr in #5389

Internal Changes 🔧

Fastmcp

  • test(fastmcp): Use AsyncClient for SSE by alexander-alderman-webb in #5400
  • test(fastmcp): Simulate stdio transport with memory streams by alexander-alderman-webb in #5333
  • test(fastmcp): Use TestClient for Streamable HTTP by alexander-alderman-webb in #5384

Mcp

  • test(mcp): Use AsyncClient for SSE by alexander-alderman-webb in #5396
  • test(mcp): Simulate stdio transport with memory streams by alexander-alderman-webb in #5329
  • test(mcp): Use TestClient for Streamable HTTP by alexander-alderman-webb in #5383

Other

  • ci: migration to the new codecov action by MathurAditya724 in #5392

🤖 This preview updates automatically when you update the PR.

@alexander-alderman-webb alexander-alderman-webb changed the title test(mcp): Simulate stdio transport with memory streams Jan 30, 2026
@alexander-alderman-webb alexander-alderman-webb marked this pull request as ready for review January 30, 2026 13:07
@alexander-alderman-webb alexander-alderman-webb requested a review from a team as a code owner January 30, 2026 13:07
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2026

Codecov Results 📊

13 passed | Total: 13 | Pass Rate: 100% | Execution Time: 4.24s

All tests are passing successfully.

✅ Patch coverage is 100.00%. Project has 14094 uncovered lines.

Files with missing lines (178)
File Patch % Lines
langchain.py 3.28% ⚠️ 590 Missing
utils.py 51.42% ⚠️ 444 Missing and 78 partials
openai.py 5.63% ⚠️ 486 Missing
utils.py 0.00% ⚠️ 479 Missing
__init__.py 5.08% ⚠️ 374 Missing
tracing_utils.py 43.07% ⚠️ 337 Missing and 32 partials
starlette.py 5.34% ⚠️ 337 Missing
scope.py 70.60% ⚠️ 237 Missing and 68 partials
transport.py 23.29% ⚠️ 303 Missing and 2 partials
client.py 54.12% ⚠️ 223 Missing and 61 partials
mcp.py 4.85% ⚠️ 255 Missing
anthropic.py 9.43% ⚠️ 240 Missing
transaction_profiler.py 35.52% ⚠️ 216 Missing and 10 partials
__init__.py 3.93% ⚠️ 220 Missing
utils.py 16.34% ⚠️ 215 Missing
langgraph.py 5.29% ⚠️ 215 Missing
span_processor.py 0.00% ⚠️ 205 Missing
__init__.py 5.14% ⚠️ 203 Missing
continuous_profiler.py 43.45% ⚠️ 177 Missing and 17 partials
tracing.py 69.05% ⚠️ 147 Missing and 42 partials
strawberry.py 8.54% ⚠️ 182 Missing
aws_lambda.py 16.50% ⚠️ 167 Missing
huggingface_hub.py 8.89% ⚠️ 164 Missing
sanic.py 9.60% ⚠️ 160 Missing
aiohttp.py 10.84% ⚠️ 148 Missing
cloud_resource_context.py 0.00% ⚠️ 145 Missing
ai_client.py 0.00% ⚠️ 145 Missing
rust_tracing.py 0.00% ⚠️ 143 Missing
litellm.py 0.00% ⚠️ 138 Missing
litestar.py 9.59% ⚠️ 132 Missing
starlite.py 8.33% ⚠️ 132 Missing
falcon.py 8.94% ⚠️ 112 Missing
flask.py 12.50% ⚠️ 112 Missing
spotlight.py 28.47% ⚠️ 103 Missing and 8 partials
asgi.py 20.71% ⚠️ 111 Missing
cohere.py 12.70% ⚠️ 110 Missing
agent_run.py 0.00% ⚠️ 110 Missing
asgi.py 0.00% ⚠️ 109 Missing
hub.py 45.60% ⚠️ 105 Missing and 3 partials
envelope.py 54.59% ⚠️ 89 Missing and 17 partials
pymongo.py 10.17% ⚠️ 106 Missing
beat.py 8.62% ⚠️ 106 Missing
caching.py 0.00% ⚠️ 106 Missing
utils.py 0.00% ⚠️ 103 Missing
templates.py 0.00% ⚠️ 100 Missing
asyncpg.py 11.61% ⚠️ 99 Missing
quart.py 16.10% ⚠️ 99 Missing
wsgi.py 22.66% ⚠️ 99 Missing
gcp.py 0.00% ⚠️ 98 Missing
otlp.py 0.00% ⚠️ 97 Missing
utils.py 13.39% ⚠️ 97 Missing
sessions.py 27.82% ⚠️ 96 Missing
pyramid.py 13.76% ⚠️ 94 Missing
tornado.py 14.55% ⚠️ 94 Missing
__init__.py 0.00% ⚠️ 93 Missing
models.py 5.15% ⚠️ 92 Missing
bottle.py 11.65% ⚠️ 91 Missing
middleware.py 0.00% ⚠️ 90 Missing
agent_run.py 0.00% ⚠️ 90 Missing
_wsgi_common.py 30.71% ⚠️ 88 Missing and 1 partials
loguru.py 11.58% ⚠️ 84 Missing
logging.py 52.94% ⚠️ 72 Missing and 11 partials
asyncio.py 0.00% ⚠️ 80 Missing
invoke_agent.py 0.00% ⚠️ 79 Missing
runner.py 0.00% ⚠️ 77 Missing
session.py 15.56% ⚠️ 76 Missing
clickhouse_driver.py 17.58% ⚠️ 75 Missing
pure_eval.py 0.00% ⚠️ 73 Missing
worker.py 22.58% ⚠️ 72 Missing
ariadne.py 14.46% ⚠️ 71 Missing
gql.py 10.13% ⚠️ 71 Missing
sqlalchemy.py 10.26% ⚠️ 70 Missing
fastapi.py 15.85% ⚠️ 69 Missing
stdlib.py 56.72% ⚠️ 58 Missing and 11 partials
monitoring.py 17.07% ⚠️ 68 Missing
graphene.py 12.82% ⚠️ 68 Missing
transactions.py 0.00% ⚠️ 67 Missing
_queue.py 26.67% ⚠️ 66 Missing
rq.py 15.38% ⚠️ 66 Missing
streaming.py 0.00% ⚠️ 66 Missing
huey.py 17.72% ⚠️ 65 Missing
boto3.py 14.86% ⚠️ 63 Missing
httpx.py 16.44% ⚠️ 61 Missing
serializer.py 76.88% ⚠️ 43 Missing and 15 partials
chalice.py 16.18% ⚠️ 57 Missing
propagator.py 0.00% ⚠️ 57 Missing
api.py 63.09% ⚠️ 55 Missing and 1 partials
server.py 0.00% ⚠️ 56 Missing
spark_driver.py 67.47% ⚠️ 54 Missing and 2 partials
graph_nodes.py 0.00% ⚠️ 52 Missing
gnu_backtrace.py 0.00% ⚠️ 51 Missing
socket.py 0.00% ⚠️ 50 Missing
views.py 0.00% ⚠️ 50 Missing
tools.py 0.00% ⚠️ 49 Missing
_batcher.py 41.25% ⚠️ 47 Missing
_asgi_common.py 16.67% ⚠️ 45 Missing
signals_handlers.py 0.00% ⚠️ 44 Missing
invoke_agent.py 0.00% ⚠️ 43 Missing
utils.py 22.22% ⚠️ 42 Missing and 1 partials
threading.py 63.16% ⚠️ 35 Missing and 5 partials
client.py 0.00% ⚠️ 40 Missing
executing.py 0.00% ⚠️ 38 Missing
client.py 0.00% ⚠️ 38 Missing
serverless.py 0.00% ⚠️ 36 Missing
caches.py 45.76% ⚠️ 32 Missing and 4 partials
server.py 0.00% ⚠️ 35 Missing
sys_exit.py 0.00% ⚠️ 32 Missing
utils.py 70.67% ⚠️ 22 Missing and 10 partials
launchdarkly.py 0.00% ⚠️ 31 Missing
_sync_common.py 38.00% ⚠️ 31 Missing
trytond.py 0.00% ⚠️ 30 Missing
tools.py 0.00% ⚠️ 30 Missing
integration.py 0.00% ⚠️ 30 Missing
error_tracing.py 0.00% ⚠️ 29 Missing
scrubber.py 76.81% ⚠️ 16 Missing and 9 partials
ray.py 70.24% ⚠️ 25 Missing
_werkzeug.py 11.11% ⚠️ 24 Missing
typer.py 0.00% ⚠️ 24 Missing
tasks.py 0.00% ⚠️ 24 Missing
_compat.py 41.03% ⚠️ 23 Missing
statsig.py 0.00% ⚠️ 23 Missing
execute_tool.py 0.00% ⚠️ 23 Missing
logger.py 43.59% ⚠️ 22 Missing
decorator.py 37.14% ⚠️ 22 Missing
__init__.py 84.78% ⚠️ 14 Missing and 8 partials
ai_client.py 15.38% ⚠️ 22 Missing
_log_batcher.py 0.00% ⚠️ 21 Missing
attachments.py 27.59% ⚠️ 21 Missing
unraisablehook.py 0.00% ⚠️ 21 Missing
__init__.py 8.70% ⚠️ 21 Missing
openfeature.py 0.00% ⚠️ 20 Missing
execute_tool.py 0.00% ⚠️ 20 Missing
dramatiq.py 90.91% ⚠️ 10 Missing and 9 partials
unleash.py 0.00% ⚠️ 19 Missing
_lru_cache.py 43.33% ⚠️ 17 Missing and 1 partials
_openai_completions_api.py 21.74% ⚠️ 18 Missing
model_request.py 0.00% ⚠️ 18 Missing
monitor.py 81.97% ⚠️ 11 Missing and 5 partials
utils.py 0.00% ⚠️ 16 Missing
redis_cluster.py 52.94% ⚠️ 16 Missing
atexit.py 56.25% ⚠️ 14 Missing and 1 partials
excepthook.py 56.25% ⚠️ 14 Missing and 1 partials
feature_flags.py 56.25% ⚠️ 14 Missing
__init__.py 27.78% ⚠️ 13 Missing
_types.py 60.00% ⚠️ 12 Missing
types.py 0.00% ⚠️ 12 Missing
_async_common.py 86.27% ⚠️ 7 Missing and 5 partials
dedupe.py 80.00% ⚠️ 8 Missing and 3 partials
api.py 37.50% ⚠️ 10 Missing
utils.py 41.18% ⚠️ 10 Missing
spark_worker.py 89.29% ⚠️ 6 Missing and 4 partials
metrics.py 47.06% ⚠️ 9 Missing
queries.py 83.87% ⚠️ 5 Missing and 4 partials
beam.py 94.05% ⚠️ 5 Missing and 3 partials
_metrics_batcher.py 65.00% ⚠️ 7 Missing
handoff.py 0.00% ⚠️ 7 Missing
consts.py 0.00% ⚠️ 7 Missing
redis_py_cluster_legacy.py 53.33% ⚠️ 7 Missing
_init_implementation.py 75.00% ⚠️ 6 Missing
_openai_responses_api.py 33.33% ⚠️ 6 Missing
arq.py 97.52% ⚠️ 3 Missing and 3 partials
debug.py 91.30% ⚠️ 2 Missing and 2 partials
consts.py 0.00% ⚠️ 4 Missing
__init__.py 20.00% ⚠️ 4 Missing
__init__.py 0.00% ⚠️ 4 Missing
__init__.py 89.66% ⚠️ 3 Missing and 1 partials
__init__.py 0.00% ⚠️ 3 Missing
__init__.py 40.00% ⚠️ 3 Missing
__init__.py 0.00% ⚠️ 3 Missing
__init__.py 0.00% ⚠️ 3 Missing
rb.py 70.00% ⚠️ 3 Missing
redis.py 85.00% ⚠️ 3 Missing
consts.py 99.43% ⚠️ 2 Missing
argv.py 100.00% ⚠️ 2 partials
modules.py 94.12% ⚠️ 1 Missing and 1 partials
agent_workflow.py 71.43% ⚠️ 2 Missing
consts.py 0.00% ⚠️ 1 Missing
consts.py 0.00% ⚠️ 1 Missing

Generated by Codecov Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants