From 23c08190eadd93e237917f5cb4edfc5f497cd298 Mon Sep 17 00:00:00 2001 From: Marcos Prieto Date: Mon, 2 Mar 2026 11:15:00 +0100 Subject: [PATCH 1/4] Bump Werkzeug to 3.1.5 --- requirements/requirements-prod.in | 2 +- requirements/requirements-prod.txt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/requirements-prod.in b/requirements/requirements-prod.in index e584170f0..5908a6fdd 100644 --- a/requirements/requirements-prod.in +++ b/requirements/requirements-prod.in @@ -88,6 +88,6 @@ urllib3==2.6.3 vobject==0.9.6.1 wcwidth==0.2.6 WebOb==1.8.8 -Werkzeug==3.0.6 +Werkzeug==3.1.5 zipp==3.20.2 zstandard==0.23.0 diff --git a/requirements/requirements-prod.txt b/requirements/requirements-prod.txt index 3818194a6..fa2e94b56 100644 --- a/requirements/requirements-prod.txt +++ b/requirements/requirements-prod.txt @@ -1148,9 +1148,9 @@ webob==1.8.8 \ # via # -r requirements-prod.in # flanker -werkzeug==3.0.6 \ - --hash=sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17 \ - --hash=sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d +werkzeug==3.1.5 \ + --hash=sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc \ + --hash=sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67 # via # -r requirements-prod.in # flask From 7afd5fde95de12f0d59b2513acd90298b3bc93b1 Mon Sep 17 00:00:00 2001 From: Marcos Prieto Date: Mon, 2 Mar 2026 11:39:27 +0100 Subject: [PATCH 2/4] Mypy tweak after upgrade --- inbox/mailsync/frontend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inbox/mailsync/frontend.py b/inbox/mailsync/frontend.py index d7308e6d4..19f6ae9e7 100644 --- a/inbox/mailsync/frontend.py +++ b/inbox/mailsync/frontend.py @@ -73,7 +73,7 @@ def _create_app_impl(self, app) -> None: # type: ignore[no-untyped-def] @app.route("/unassign", methods=["POST"]) def unassign_account(): # type: ignore[no-untyped-def] - account_id = request.json["account_id"] # type: ignore[index] + account_id = request.json["account_id"] ret = self.sync_service.stop_sync(account_id) if ret: return "OK" From db8a5ef6b0c7c94c25c98e37e0f74b74c19e2a02 Mon Sep 17 00:00:00 2001 From: Marcos Prieto Date: Mon, 2 Mar 2026 11:40:07 +0100 Subject: [PATCH 3/4] Workaround for test after upgrade --- tests/conftest.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index 075df8a9a..d11810f27 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,6 +2,8 @@ import os +import werkzeug + os.environ["NYLAS_ENV"] = "test" from pytest import fixture # noqa: PT013 @@ -18,6 +20,10 @@ def _make_api_client(db, namespace): from inbox.api.srv import app app.config["TESTING"] = True + # test_client uses werkzeug.__version__ attribute + # which has been deprecated + # To avoid a rushed flask upgrade we'll patch it here + werkzeug.__version__ = "1.0.0" with app.test_client() as c: return TestAPIClient(c, namespace.public_id) From b11a4afa35856eed6abae804731a6d36a3decc6e Mon Sep 17 00:00:00 2001 From: Marcos Prieto Date: Mon, 2 Mar 2026 11:45:15 +0100 Subject: [PATCH 4/4] Use the actual vrsion instead of hardcoded --- tests/conftest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index d11810f27..92e7dc30a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ """Fixtures don't go here; see util/base.py and friends.""" +import importlib import os import werkzeug @@ -23,7 +24,7 @@ def _make_api_client(db, namespace): # test_client uses werkzeug.__version__ attribute # which has been deprecated # To avoid a rushed flask upgrade we'll patch it here - werkzeug.__version__ = "1.0.0" + werkzeug.__version__ = importlib.metadata.version("werkzeug") with app.test_client() as c: return TestAPIClient(c, namespace.public_id)