From 257288ede10bc55ae61c400d8ca0003b232fa6b3 Mon Sep 17 00:00:00 2001 From: kshitijk4poor <82637225+kshitijk4poor@users.noreply.github.com> Date: Mon, 14 Sep 2026 23:18:37 +0530 Subject: [PATCH] test(matrix): make the 502 SVG fixture actually embed "403" The inherited fixture coordinate "40.4302" does not contain the substring "403" (the dot splits it), so the old substring classifier also passed on it and the case proved nothing. Use a coordinate that genuinely embeds the digits so the test is red on the pre-fix classifier. --- plugins/platforms/matrix/adapter.py | 2 +- tests/gateway/test_matrix.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/platforms/matrix/adapter.py b/plugins/platforms/matrix/adapter.py index 30cdc1822a..e5e6766659 100644 --- a/plugins/platforms/matrix/adapter.py +++ b/plugins/platforms/matrix/adapter.py @@ -209,7 +209,7 @@ def _is_permanent_matrix_auth_error(exc: BaseException) -> bool: A transient homeserver outage surfaces as a 5xx whose body may be an HTML error page (Umbrel's app-proxy returns one). Naive substring checks like ``"403" in str(exc)`` false-positive on digits embedded in that HTML (an SVG - coordinate such as ``40.4302`` contains ``403``) or in the ``since`` token + path coordinate such as ``1403.2`` contains ``403``) or in the ``since`` token echoed by a timeout message, which stopped the sync loop permanently on a passing blip. mautrix raises ``MatrixRequestError`` with ``errcode`` and ``http_status`` for every non-2xx, so classify on those alone; anything diff --git a/tests/gateway/test_matrix.py b/tests/gateway/test_matrix.py index aba2eca206..ec5b392f3a 100644 --- a/tests/gateway/test_matrix.py +++ b/tests/gateway/test_matrix.py @@ -1375,9 +1375,9 @@ class TestMatrixSyncLoop: @pytest.mark.parametrize( "exc", [ - # Umbrel app-proxy 502: the SVG coordinate 40.4302 embeds "403". + # Umbrel app-proxy 502: an SVG path coordinate embeds "403". _sync_error.__func__( - '502: ', + '502: ', http_status=502, ), # Plain timeout echoing the pagination token, which embeds "401".