From 2ae3086244d5eb9b3a430b64f6b86180746fa804 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 2 Oct 2025 09:07:15 +0200 Subject: [PATCH] qutescheme: Improve handling of invalid path -> host redirects --- qutebrowser/browser/qutescheme.py | 5 +++-- tests/unit/browser/test_qutescheme.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/qutebrowser/browser/qutescheme.py b/qutebrowser/browser/qutescheme.py index 269a0187f..fa7970e6d 100644 --- a/qutebrowser/browser/qutescheme.py +++ b/qutebrowser/browser/qutescheme.py @@ -132,8 +132,9 @@ def data_for_url(url: QUrl) -> tuple[str, bytes]: new_url = QUrl(url) new_url.setHost(path) new_url.setPath('/') - if new_url.host(): # path was a valid host - raise Redirect(new_url) + if not new_url.host(): # Valid path but not valid host + raise UrlInvalidError(f"Invalid host (from path): {path!r}") + raise Redirect(new_url) if not path: # Redirect qute://help -> qute://help/ diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py index 42d082797..b8dcb8d62 100644 --- a/tests/unit/browser/test_qutescheme.py +++ b/tests/unit/browser/test_qutescheme.py @@ -42,7 +42,7 @@ class TestDataForUrl: def test_invalid_redirect(self) -> None: url = QUrl("qute:-") with pytest.raises( - qutescheme.NotFoundError, match="No handler found for qute:-" + qutescheme.UrlInvalidError, match=r"Invalid host \(from path\): '-'" ): qutescheme.data_for_url(url)