diff options
author | Florian Bruhin <git@the-compiler.org> | 2018-05-03 09:09:27 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2018-05-03 09:09:27 +0200 |
commit | 91aa9f6c0ca714de09b7fb62adf142f37c25e50f (patch) | |
tree | ff802c31942f24bf1b547ac6a99684c0729083fe | |
parent | d6cacdb42fe83a0569e0c278256c480405f938e2 (diff) | |
parent | 19554ba4a13f7e75ad5b4b338f8dbb80f9b9e50c (diff) | |
download | qutebrowser-91aa9f6c0ca714de09b7fb62adf142f37c25e50f.tar.gz qutebrowser-91aa9f6c0ca714de09b7fb62adf142f37c25e50f.zip |
Merge remote-tracking branch 'origin/pr/3884'
-rw-r--r-- | qutebrowser/misc/autoupdate.py | 2 | ||||
-rw-r--r-- | qutebrowser/misc/httpclient.py | 19 | ||||
-rw-r--r-- | tests/unit/misc/test_autoupdate.py | 2 |
3 files changed, 19 insertions, 4 deletions
diff --git a/qutebrowser/misc/autoupdate.py b/qutebrowser/misc/autoupdate.py index d056d61b6..d223bd366 100644 --- a/qutebrowser/misc/autoupdate.py +++ b/qutebrowser/misc/autoupdate.py @@ -45,7 +45,7 @@ class PyPIVersionClient(QObject): arg: The error message, as string. """ - API_URL = 'https://pypi.python.org/pypi/{}/json' + API_URL = 'https://pypi.org/pypi/{}/json' success = pyqtSignal(str) error = pyqtSignal(str) diff --git a/qutebrowser/misc/httpclient.py b/qutebrowser/misc/httpclient.py index b0b41af76..0b162befd 100644 --- a/qutebrowser/misc/httpclient.py +++ b/qutebrowser/misc/httpclient.py @@ -28,6 +28,21 @@ from PyQt5.QtNetwork import (QNetworkAccessManager, QNetworkRequest, QNetworkReply) +class HTTPRequest(QNetworkRequest): + """A QNetworkRquest that follows (secure) redirects by default.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + try: + self.setAttribute(QNetworkRequest.RedirectPolicyAttribute, + QNetworkRequest.NoLessSafeRedirectPolicy) + except AttributeError: + # RedirectPolicyAttribute was introduced in 5.9 to replace + # FollowRedirectsAttribute. + self.setAttribute(QNetworkRequest.FollowRedirectsAttribute, + True) + + class HTTPClient(QObject): """An HTTP client based on QNetworkAccessManager. @@ -63,7 +78,7 @@ class HTTPClient(QObject): if data is None: data = {} encoded_data = urllib.parse.urlencode(data).encode('utf-8') - request = QNetworkRequest(url) + request = HTTPRequest(url) request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/x-www-form-urlencoded;charset=utf-8') reply = self._nam.post(request, encoded_data) @@ -77,7 +92,7 @@ class HTTPClient(QObject): Args: url: The URL to access, as QUrl. """ - request = QNetworkRequest(url) + request = HTTPRequest(url) reply = self._nam.get(request) self._handle_reply(reply) diff --git a/tests/unit/misc/test_autoupdate.py b/tests/unit/misc/test_autoupdate.py index 4f5a9dc0e..d4a69a115 100644 --- a/tests/unit/misc/test_autoupdate.py +++ b/tests/unit/misc/test_autoupdate.py @@ -67,7 +67,7 @@ def test_get_version_success(qtbot): with qtbot.waitSignal(client.success): client.get_version('test') - assert http_stub.url == QUrl('https://pypi.python.org/pypi/test/json') + assert http_stub.url == QUrl(client.API_URL.format('test')) def test_get_version_error(qtbot): |