From dfea077b7a8a372cd3ff604c2c23546bfa402d47 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:51:47 +0000 Subject: [PATCH 1/3] =?UTF-8?q?ci:=20=F0=9F=A4=96=20Update=20test=20matrix?= =?UTF-8?q?=20with=20new=20releases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index 4f89238337..64120eaa3d 100644 --- a/tox.ini +++ b/tox.ini @@ -254,6 +254,7 @@ envlist = {py3.7,py3.10,py3.11}-starlette-v0.28.0 {py3.8,py3.12,py3.13}-starlette-v0.40.0 {py3.10,py3.13,py3.14,py3.14t}-starlette-v0.52.1 + {py3.10,py3.13,py3.14,py3.14t}-starlette-v1.0.0rc1 {py3.6,py3.9,py3.10}-fastapi-v0.79.1 {py3.7,py3.10,py3.11}-fastapi-v0.97.0 @@ -676,6 +677,7 @@ deps = starlette-v0.28.0: starlette==0.28.0 starlette-v0.40.0: starlette==0.40.0 starlette-v0.52.1: starlette==0.52.1 + starlette-v1.0.0rc1: starlette==1.0.0rc1 starlette: pytest-asyncio starlette: python-multipart starlette: requests From bb6a5c96b4f0d586d62889634af35554e01d590d Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 24 Feb 2026 14:59:05 +0100 Subject: [PATCH 2/3] ci From d6424912882ada712e63a7e2d853c509575ace96 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 24 Feb 2026 16:04:29 +0100 Subject: [PATCH 3/3] fix(starlette): Update test for Starlette 1.0 TemplateResponse API (#5525) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Fix `test_template_tracing_meta` failure on `starlette==1.0.0rc1` across all Python versions (3.10, 3.13, 3.14, 3.14t) Closes https://github.com/getsentry/sentry-python/issues/5523 ## Analysis Starlette 1.0.0rc1 removed the deprecated `TemplateResponse(name, context)` calling convention ([encode/starlette#3118](https://github.com/encode/starlette/pull/3118), commit [`96479da`](https://github.com/encode/starlette/commit/96479da)). The new required signature is `TemplateResponse(request, name, context)`. When the old-style call was made, the string template name was passed as the `request` parameter and the context dict as `name`, which then got used as part of a Jinja2 cache key tuple, causing `TypeError: unhashable type: 'dict'`. The fix branches on `STARLETTE_VERSION >= (1,)` to use the new API for Starlette 1.0+ while keeping the old API for older versions. ## Test plan - [x] `tox -e py3.14-starlette-v1.0.0rc1` — 71 passed - [x] `tox -e py3.14-starlette-v0.52.1` — 71 passed (no regression) - [ ] CI passes on all Web 1 jobs 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 --- tests/integrations/starlette/test_starlette.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/integrations/starlette/test_starlette.py b/tests/integrations/starlette/test_starlette.py index 0cb33e159b..801cd53bf4 100644 --- a/tests/integrations/starlette/test_starlette.py +++ b/tests/integrations/starlette/test_starlette.py @@ -144,7 +144,12 @@ async def _render_template(request): "request": request, "msg": "Hello Template World!", } - return templates.TemplateResponse("trace_meta.html", template_context) + if STARLETTE_VERSION >= (1,): + return templates.TemplateResponse( + request, "trace_meta.html", template_context + ) + else: + return templates.TemplateResponse("trace_meta.html", template_context) all_methods = [ "CONNECT",