summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy <jimmy@spalge.com>2022-04-09 17:00:09 +1200
committerJimmy <jimmy@spalge.com>2022-04-10 11:08:16 +1200
commitc92f6ddea9b8f35c12542bcc361686dab20d8e81 (patch)
treee3331bf1c331bc7b8c32cc671a28c1c911003741
parent3ced0062afa357be9c4a16638a8228dc6669e51c (diff)
downloadqutebrowser-c92f6ddea9b8f35c12542bcc361686dab20d8e81.tar.gz
qutebrowser-c92f6ddea9b8f35c12542bcc361686dab20d8e81.zip
Fix (py)lint
mypy is still confused. Probably we can install PyQt5-stubs as qutebrowser.qt-stubs. Might try to do the actual import re-writes before figuring out how to make that work (and in CI) though. Mostly line-to-long and ungrouped imports. If we had black and isort set up they would have done it for me! Not sure why there isn't more stuff complaining about visible indent whatever.
-rw-r--r--.pylintrc2
-rw-r--r--qutebrowser/browser/qtnetworkdownloads.py4
-rw-r--r--qutebrowser/browser/webengine/notification.py12
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py14
-rw-r--r--qutebrowser/browser/webkit/network/networkreply.py12
-rw-r--r--qutebrowser/config/configfiles.py2
-rw-r--r--qutebrowser/misc/backendproblem.py5
-rw-r--r--qutebrowser/misc/sessions.py2
-rw-r--r--qutebrowser/qt/__init__.py69
-rw-r--r--qutebrowser/utils/utils.py7
-rw-r--r--tests/end2end/conftest.py2
-rw-r--r--tests/end2end/fixtures/notificationserver.py6
-rw-r--r--tests/end2end/fixtures/testprocess.py6
-rw-r--r--tests/end2end/test_invocations.py2
-rw-r--r--tests/helpers/stubs.py9
-rw-r--r--tests/unit/browser/test_qutescheme.py2
-rw-r--r--tests/unit/browser/webkit/test_cookies.py4
-rw-r--r--tests/unit/components/test_blockutils.py3
-rw-r--r--tests/unit/components/test_braveadblock.py2
-rw-r--r--tests/unit/components/test_readlinecommands.py2
-rw-r--r--tests/unit/config/test_configfiles.py2
-rw-r--r--tests/unit/keyinput/test_basekeyparser.py2
-rw-r--r--tests/unit/keyinput/test_keyutils.py6
-rw-r--r--tests/unit/keyinput/test_modeparsers.py5
-rw-r--r--tests/unit/mainwindow/statusbar/test_textbase.py2
-rw-r--r--tests/unit/misc/test_miscwidgets.py4
-rw-r--r--tests/unit/misc/test_throttle.py2
-rw-r--r--tests/unit/utils/test_standarddir.py2
-rw-r--r--tests/unit/utils/test_urlutils.py4
29 files changed, 106 insertions, 90 deletions
diff --git a/.pylintrc b/.pylintrc
index c5a1289fb..becae033e 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -89,7 +89,7 @@ max-args=10
valid-metaclass-classmethod-first-arg=cls
[TYPECHECK]
-ignored-modules=PyQt5,PyQt5.QtWebKit
+ignored-modules=PyQt5,PyQt5.QtWebKit,qutebrowser.qt
ignored-classes=DummyBox,__cause__
[IMPORTS]
diff --git a/qutebrowser/browser/qtnetworkdownloads.py b/qutebrowser/browser/qtnetworkdownloads.py
index d3ae22d66..75d6760f7 100644
--- a/qutebrowser/browser/qtnetworkdownloads.py
+++ b/qutebrowser/browser/qtnetworkdownloads.py
@@ -28,7 +28,9 @@ from typing import Dict, IO, Optional
from qutebrowser.qt.QtCore import pyqtSlot, pyqtSignal, QTimer, QUrl
from qutebrowser.qt.QtWidgets import QApplication
-from qutebrowser.qt.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
+from qutebrowser.qt.QtNetwork import (
+ QNetworkRequest, QNetworkReply, QNetworkAccessManager,
+)
from qutebrowser.config import config, websettings
from qutebrowser.utils import message, usertypes, log, urlutils, utils, debug, objreg
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index d3e3b9788..3eddb6cb5 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -50,11 +50,15 @@ import functools
import subprocess
from typing import Any, List, Dict, Optional, Iterator, TYPE_CHECKING
-from qutebrowser.qt.QtCore import (Qt, QObject, QVariant, QMetaType, QByteArray, pyqtSlot,
- pyqtSignal, QTimer, QProcess, QUrl)
+from qutebrowser.qt.QtCore import (
+ Qt, QObject, QVariant, QMetaType, QByteArray, pyqtSlot, pyqtSignal,
+ QTimer, QProcess, QUrl,
+)
from qutebrowser.qt.QtGui import QImage, QIcon, QPixmap
-from qutebrowser.qt.QtDBus import (QDBusConnection, QDBusInterface, QDBus, QDBusServiceWatcher,
- QDBusArgument, QDBusMessage, QDBusError)
+from qutebrowser.qt.QtDBus import (
+ QDBusConnection, QDBusInterface, QDBus, QDBusServiceWatcher,
+ QDBusArgument, QDBusMessage, QDBusError,
+)
from qutebrowser.qt.QtWidgets import QSystemTrayIcon
if TYPE_CHECKING:
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index 1f0e0012f..bf27d0607 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -26,12 +26,6 @@ import re
import html as html_utils
from typing import cast, Union, Optional
-from qutebrowser.qt.QtCore import (pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QTimer, QUrl,
- QObject)
-from qutebrowser.qt.QtNetwork import QAuthenticator
-from qutebrowser.qt.QtWidgets import QWidget
-from qutebrowser.qt.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript, QWebEngineHistory
-
from qutebrowser.config import config
from qutebrowser.browser import browsertab, eventfilter, shared, webelem, greasemonkey
from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory,
@@ -41,6 +35,14 @@ from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory,
from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils,
resources, message, jinja, debug, version)
from qutebrowser.qt import sip
+from qutebrowser.qt.QtCore import (
+ pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QTimer, QUrl, QObject,
+)
+from qutebrowser.qt.QtNetwork import QAuthenticator
+from qutebrowser.qt.QtWidgets import QWidget
+from qutebrowser.qt.QtWebEngineWidgets import (
+ QWebEnginePage, QWebEngineScript, QWebEngineHistory,
+)
from qutebrowser.misc import objects, miscwidgets
diff --git a/qutebrowser/browser/webkit/network/networkreply.py b/qutebrowser/browser/webkit/network/networkreply.py
index 4eff3cdba..45d00b46d 100644
--- a/qutebrowser/browser/webkit/network/networkreply.py
+++ b/qutebrowser/browser/webkit/network/networkreply.py
@@ -34,26 +34,26 @@ class FixedDataNetworkReply(QNetworkReply):
"""QNetworkReply subclass for fixed data."""
- def __init__(self, request, fileData, mimeType, parent=None): # noqa: N803
+ def __init__(self, request, file_data, mime_type, parent=None): # noqa: N803
"""Constructor.
Args:
request: reference to the request object (QNetworkRequest)
- fileData: reference to the data buffer (QByteArray)
- mimeType: for the reply (string)
+ file_data: reference to the data buffer (QByteArray)
+ mime_type: for the reply (string)
parent: reference to the parent object (QObject)
"""
super().__init__(parent)
- self._data = fileData
+ self._data = file_data
self.setRequest(request)
self.setUrl(request.url())
self.setOpenMode(QIODevice.ReadOnly)
- self.setHeader(QNetworkRequest.ContentTypeHeader, mimeType)
+ self.setHeader(QNetworkRequest.ContentTypeHeader, mime_type)
self.setHeader(QNetworkRequest.ContentLengthHeader,
- QByteArray.number(len(fileData)))
+ QByteArray.number(len(file_data)))
self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, 'OK')
# For some reason, a segfault will be triggered if these lambdas aren't
diff --git a/qutebrowser/config/configfiles.py b/qutebrowser/config/configfiles.py
index 4998fa3f8..c449a6a06 100644
--- a/qutebrowser/config/configfiles.py
+++ b/qutebrowser/config/configfiles.py
@@ -121,6 +121,8 @@ class StateConfig(configparser.ConfigParser):
import qutebrowser.qt.QtWebEngineWidgets # pylint: disable=unused-import
except ImportError:
return 'no'
+ if not qutebrowser.qt.QtWebEngineWidgets:
+ return False
return str(version.qtwebengine_versions(avoid_init=True).webengine)
def _set_changed_attributes(self) -> None:
diff --git a/qutebrowser/misc/backendproblem.py b/qutebrowser/misc/backendproblem.py
index 675899867..bc10da16a 100644
--- a/qutebrowser/misc/backendproblem.py
+++ b/qutebrowser/misc/backendproblem.py
@@ -30,8 +30,9 @@ import dataclasses
from typing import Any, List, Sequence, Tuple, Optional
from qutebrowser.qt.QtCore import Qt
-from qutebrowser.qt.QtWidgets import (QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel,
- QMessageBox, QWidget)
+from qutebrowser.qt.QtWidgets import (
+ QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel, QMessageBox, QWidget,
+)
from qutebrowser.qt.QtNetwork import QSslSocket
from qutebrowser.config import config, configfiles
diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py
index fbf6cb07e..fe27c5657 100644
--- a/qutebrowser/misc/sessions.py
+++ b/qutebrowser/misc/sessions.py
@@ -27,7 +27,6 @@ import shutil
import pathlib
from typing import Any, Iterable, MutableMapping, MutableSequence, Optional, Union, cast
-from qutebrowser.qt.QtCore import Qt, QUrl, QObject, QPoint, QTimer, QDateTime
import yaml
from qutebrowser.utils import (standarddir, objreg, qtutils, log, message,
@@ -37,6 +36,7 @@ from qutebrowser.config import config, configfiles
from qutebrowser.completion.models import miscmodels
from qutebrowser.mainwindow import mainwindow
from qutebrowser.qt import sip
+from qutebrowser.qt.QtCore import Qt, QUrl, QObject, QPoint, QTimer, QDateTime
from qutebrowser.misc import objects, throttle
diff --git a/qutebrowser/qt/__init__.py b/qutebrowser/qt/__init__.py
index a9e665f72..8c3941444 100644
--- a/qutebrowser/qt/__init__.py
+++ b/qutebrowser/qt/__init__.py
@@ -19,17 +19,15 @@
"""Wrappers around Qt/PyQt code."""
-# pylint: disable=unused-import
-
import sys
import importlib
from importlib.abc import Loader, MetaPathFinder
from importlib.machinery import ModuleSpec
try:
- import PyQt5 as pyqt
+ import PyQt5 as pyqt # noqa: N813
except ImportError:
- import PyQt6 as pyqt
+ import PyQt6 as pyqt # noqa: N813
# While upstream recommends using PyQt5.sip ever since PyQt5 5.11, some distributions
# still package later versions of PyQt5 with a top-level "sip" rather than "PyQt5.sip".
@@ -55,8 +53,7 @@ class QuteProxyLoader(Loader):
class QuteProxyFinder(MetaPathFinder):
- """
- Proxy finder to access modules via an alternate prefix.
+ """Proxy finder to access modules via an alternate prefix.
For example:
>>> sys.meta_path.insert(0, QuteProxyFinder('qutesys', 'sys'))
@@ -64,7 +61,11 @@ class QuteProxyFinder(MetaPathFinder):
>>> qutesys
<module 'sys' (built-in)>
>>> qutesys.__spec__
- ModuleSpec(name='qutesys', loader=<__main__.QuteProxyLoader object at 0x7f8367ce1370>, origin='built-in')
+ ModuleSpec(
+ name='qutesys',
+ loader=<__main__.QuteProxyLoader object at 0x7f8367ce1370>,
+ origin='built-in',
+ )
>>> id(sys) == id(qutesys)
True
@@ -82,7 +83,8 @@ class QuteProxyFinder(MetaPathFinder):
self.their_prefix = their_prefix
self._loader = QuteProxyLoader(self.our_prefix, self.their_prefix)
- def find_spec(self, fullname, path, target=None):
+ def find_spec(self, fullname, _path, _target=None):
+ """Return a spec for a module, or None."""
if not fullname.startswith(self.our_prefix):
return None
@@ -123,30 +125,33 @@ sys.meta_path.insert(0, QuteProxyFinder(__name__, pyqt.__name__))
#from pyqt import QtWebKitWidgets
#from pyqt import QtWidgets
-#QtCore = importlib.import_module("PyQt5.QtCore", package="qutebrowser.qt")
-#QtDBus = importlib.import_module("PyQt5.QtDBus")
-#QtGui = importlib.import_module("PyQt5.QtGui")
-#QtNetwork = importlib.import_module("PyQt5.QtNetwork")
-#QtPrintSupport = importlib.import_module("PyQt5.QtPrintSupport")
-#QtQml = importlib.import_module("PyQt5.QtQml")
-#QtSql = importlib.import_module("PyQt5.QtSql")
-#QtWidgets = importlib.import_module("PyQt5.QtWidgets")
-
-#try:
-# QtWebEngine = importlib.import_module("PyQt5.QtWebEngine")
-# QtWebEngineCore = importlib.import_module("PyQt5.QtWebEngineCore")
-# QtWebEngineWidgets = importlib.import_module("PyQt5.QtWebEngineWidgets")
-#except ImportError:
-# QtWebEngine = None
-# QtWebEngineCore = None
-# QtWebEngineWidgets = None
-#
-#try:
-# QtWebKit = importlib.import_module("PyQt5.QtWebKit")
-# QtWebKitWidgets = importlib.import_module("PyQt5.QtWebKitWidgets")
-#except ImportError:
-# QtWebKit = None
-# QtWebKitWidgets = None
+# There module level imports aren't currently used, they are just to trick
+# pylint
+QtCore = importlib.import_module("PyQt5.QtCore")
+QtDBus = importlib.import_module("PyQt5.QtDBus")
+QtGui = importlib.import_module("PyQt5.QtGui")
+QtNetwork = importlib.import_module("PyQt5.QtNetwork")
+QtPrintSupport = importlib.import_module("PyQt5.QtPrintSupport")
+QtQml = importlib.import_module("PyQt5.QtQml")
+QtSql = importlib.import_module("PyQt5.QtSql")
+QtWidgets = importlib.import_module("PyQt5.QtWidgets")
+QtTest = importlib.import_module("PyQt5.QtTest")
+
+try:
+ QtWebEngine = importlib.import_module("PyQt5.QtWebEngine")
+ QtWebEngineCore = importlib.import_module("PyQt5.QtWebEngineCore")
+ QtWebEngineWidgets = importlib.import_module("PyQt5.QtWebEngineWidgets")
+except ImportError:
+ QtWebEngine = None
+ QtWebEngineCore = None
+ QtWebEngineWidgets = None
+
+try:
+ QtWebKit = importlib.import_module("PyQt5.QtWebKit")
+ QtWebKitWidgets = importlib.import_module("PyQt5.QtWebKitWidgets")
+except ImportError:
+ QtWebKit = None
+ QtWebKitWidgets = None
#common_submodules = [
# 'QtCore',
diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py
index 81b5d5af3..b2f280c77 100644
--- a/qutebrowser/utils/utils.py
+++ b/qutebrowser/utils/utils.py
@@ -44,10 +44,6 @@ except ImportError: # pragma: no cover
"""Empty stub at runtime."""
-from qutebrowser.qt.QtCore import QUrl, QVersionNumber, QRect
-from qutebrowser.qt.QtGui import QClipboard, QDesktopServices
-from qutebrowser.qt.QtWidgets import QApplication
-
import yaml
try:
from yaml import (CSafeLoader as YamlLoader,
@@ -59,6 +55,9 @@ except ImportError: # pragma: no cover
YAML_C_EXT = False
from qutebrowser.utils import log
+from qutebrowser.qt.QtCore import QUrl, QVersionNumber, QRect
+from qutebrowser.qt.QtGui import QClipboard, QDesktopServices
+from qutebrowser.qt.QtWidgets import QApplication
fake_clipboard = None
log_clipboard = False
diff --git a/tests/end2end/conftest.py b/tests/end2end/conftest.py
index 0ee069e77..80e4882f5 100644
--- a/tests/end2end/conftest.py
+++ b/tests/end2end/conftest.py
@@ -27,7 +27,6 @@ import pstats
import operator
import pytest
-from qutebrowser.qt.QtCore import PYQT_VERSION, QCoreApplication
pytest.register_assert_rewrite('end2end.fixtures')
@@ -39,6 +38,7 @@ from end2end.fixtures.quteprocess import (quteproc_process, quteproc,
from end2end.fixtures.testprocess import pytest_runtest_makereport
# pylint: enable=unused-import
from qutebrowser.utils import qtutils, utils
+from qutebrowser.qt.QtCore import PYQT_VERSION, QCoreApplication
def pytest_configure(config):
diff --git a/tests/end2end/fixtures/notificationserver.py b/tests/end2end/fixtures/notificationserver.py
index f410c86f8..c406b3d07 100644
--- a/tests/end2end/fixtures/notificationserver.py
+++ b/tests/end2end/fixtures/notificationserver.py
@@ -21,13 +21,13 @@ import dataclasses
import itertools
from typing import Dict, List
-from qutebrowser.qt.QtCore import QObject, QByteArray, QUrl, pyqtSlot
-from qutebrowser.qt.QtGui import QImage
-from qutebrowser.qt.QtDBus import QDBusConnection, QDBusArgument, QDBusMessage
import pytest
from qutebrowser.browser.webengine import notification
from qutebrowser.utils import utils
+from qutebrowser.qt.QtCore import QObject, QByteArray, QUrl, pyqtSlot
+from qutebrowser.qt.QtGui import QImage
+from qutebrowser.qt.QtDBus import QDBusConnection, QDBusArgument, QDBusMessage
from tests.helpers import testutils
diff --git a/tests/end2end/fixtures/testprocess.py b/tests/end2end/fixtures/testprocess.py
index 73d0fa4a8..a2128be94 100644
--- a/tests/end2end/fixtures/testprocess.py
+++ b/tests/end2end/fixtures/testprocess.py
@@ -26,13 +26,13 @@ import dataclasses
import pytest
import pytestqt.wait_signal
-from qutebrowser.qt.QtCore import (pyqtSlot, pyqtSignal, QProcess, QObject,
- QElapsedTimer, QProcessEnvironment)
-from qutebrowser.qt.QtTest import QSignalSpy
from helpers import testutils
from qutebrowser.utils import utils as quteutils
+from qutebrowser.qt.QtCore import (pyqtSlot, pyqtSignal, QProcess, QObject,
+ QElapsedTimer, QProcessEnvironment)
+from qutebrowser.qt.QtTest import QSignalSpy
class InvalidLine(Exception):
diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py
index c8218968b..ba3b72b0d 100644
--- a/tests/end2end/test_invocations.py
+++ b/tests/end2end/test_invocations.py
@@ -29,10 +29,10 @@ import json
import platform
import pytest
-from qutebrowser.qt.QtCore import QProcess, QPoint
from helpers import testutils
from qutebrowser.utils import qtutils, utils
+from qutebrowser.qt.QtCore import QProcess, QPoint
ascii_locale = pytest.mark.skipif(sys.hexversion >= 0x03070000,
diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py
index a4d85da76..138cfd158 100644
--- a/tests/helpers/stubs.py
+++ b/tests/helpers/stubs.py
@@ -30,10 +30,13 @@ import builtins
import importlib
import types
-from qutebrowser.qt.QtCore import pyqtSignal, QPoint, QProcess, QObject, QUrl, QByteArray
+from qutebrowser.qt.QtCore import (
+ pyqtSignal, QPoint, QProcess, QObject, QUrl, QByteArray,
+)
from qutebrowser.qt.QtGui import QIcon
-from qutebrowser.qt.QtNetwork import (QNetworkRequest, QAbstractNetworkCache,
- QNetworkCacheMetaData)
+from qutebrowser.qt.QtNetwork import (
+ QNetworkRequest, QAbstractNetworkCache, QNetworkCacheMetaData,
+)
from qutebrowser.qt.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar
from qutebrowser.browser import browsertab, downloads
diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py
index 70bc6e023..ed867fd20 100644
--- a/tests/unit/browser/test_qutescheme.py
+++ b/tests/unit/browser/test_qutescheme.py
@@ -24,12 +24,12 @@ import time
import logging
import py.path # pylint: disable=no-name-in-module
-from qutebrowser.qt.QtCore import QUrl, QUrlQuery
import pytest
from qutebrowser.browser import qutescheme, pdfjs, downloads
from qutebrowser.utils import resources
from qutebrowser.misc import guiprocess
+from qutebrowser.qt.QtCore import QUrl, QUrlQuery
class TestJavascriptHandler:
diff --git a/tests/unit/browser/webkit/test_cookies.py b/tests/unit/browser/webkit/test_cookies.py
index 76a99fdd9..c0a385e19 100644
--- a/tests/unit/browser/webkit/test_cookies.py
+++ b/tests/unit/browser/webkit/test_cookies.py
@@ -18,13 +18,13 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
-from qutebrowser.qt.QtNetwork import QNetworkCookie
-from qutebrowser.qt.QtCore import QUrl
import pytest
from qutebrowser.browser.webkit import cookies
from qutebrowser.utils import usertypes, urlmatch
from qutebrowser.misc import lineparser, objects
+from qutebrowser.qt.QtNetwork import QNetworkCookie
+from qutebrowser.qt.QtCore import QUrl
pytestmark = pytest.mark.usefixtures('data_tmpdir')
diff --git a/tests/unit/components/test_blockutils.py b/tests/unit/components/test_blockutils.py
index 13f091852..859c47599 100644
--- a/tests/unit/components/test_blockutils.py
+++ b/tests/unit/components/test_blockutils.py
@@ -21,11 +21,10 @@
import io
from typing import IO
-from qutebrowser.qt.QtCore import QUrl
-
import pytest
from qutebrowser.components.utils import blockutils
+from qutebrowser.qt.QtCore import QUrl
@pytest.fixture
diff --git a/tests/unit/components/test_braveadblock.py b/tests/unit/components/test_braveadblock.py
index 751c4221d..75eb26f70 100644
--- a/tests/unit/components/test_braveadblock.py
+++ b/tests/unit/components/test_braveadblock.py
@@ -22,7 +22,6 @@ import logging
import csv
from typing import Iterable, Tuple
-from qutebrowser.qt.QtCore import QUrl
import pytest
@@ -30,6 +29,7 @@ from qutebrowser.api.interceptor import ResourceType
from qutebrowser.components import braveadblock
from qutebrowser.components.utils import blockutils
from qutebrowser.utils import usertypes
+from qutebrowser.qt.QtCore import QUrl
from helpers import testutils
pytestmark = pytest.mark.usefixtures("qapp")
diff --git a/tests/unit/components/test_readlinecommands.py b/tests/unit/components/test_readlinecommands.py
index 720d6f12a..1c267fd65 100644
--- a/tests/unit/components/test_readlinecommands.py
+++ b/tests/unit/components/test_readlinecommands.py
@@ -21,10 +21,10 @@ import os
import re
import inspect
-from qutebrowser.qt.QtWidgets import QLineEdit, QApplication
import pytest
from qutebrowser.components import readlinecommands
+from qutebrowser.qt.QtWidgets import QLineEdit, QApplication
# Some functions aren't 100% readline compatible:
diff --git a/tests/unit/config/test_configfiles.py b/tests/unit/config/test_configfiles.py
index 258612dbe..638d959ed 100644
--- a/tests/unit/config/test_configfiles.py
+++ b/tests/unit/config/test_configfiles.py
@@ -223,7 +223,7 @@ def test_qtwe_version_changed(state_writer, qtwe_version_patcher,
def test_qtwe_version_changed_webkit(stubs, monkeypatch, state_writer):
- fake = stubs.ImportFake({'PyQt5.QtWebEngineWidgets': False}, monkeypatch)
+ fake = stubs.ImportFake({'qutebrowser.qt.QtWebEngineWidgets': False}, monkeypatch)
fake.patch()
state_writer('qtwe_version', 'no')
diff --git a/tests/unit/keyinput/test_basekeyparser.py b/tests/unit/keyinput/test_basekeyparser.py
index cb951a74a..ad9c943b0 100644
--- a/tests/unit/keyinput/test_basekeyparser.py
+++ b/tests/unit/keyinput/test_basekeyparser.py
@@ -21,11 +21,11 @@
from unittest import mock
-from qutebrowser.qt.QtCore import Qt
import pytest
from qutebrowser.keyinput import basekeyparser, keyutils
from qutebrowser.utils import utils, usertypes
+from qutebrowser.qt.QtCore import Qt
# Alias because we need this a lot in here.
diff --git a/tests/unit/keyinput/test_keyutils.py b/tests/unit/keyinput/test_keyutils.py
index 5a876ab2b..f8887d9de 100644
--- a/tests/unit/keyinput/test_keyutils.py
+++ b/tests/unit/keyinput/test_keyutils.py
@@ -22,13 +22,13 @@ import operator
import hypothesis
from hypothesis import strategies
import pytest
-from qutebrowser.qt.QtCore import Qt, QEvent, pyqtSignal
-from qutebrowser.qt.QtGui import QKeyEvent, QKeySequence
-from qutebrowser.qt.QtWidgets import QWidget
from unit.keyinput import key_data
from qutebrowser.keyinput import keyutils
from qutebrowser.utils import utils
+from qutebrowser.qt.QtCore import Qt, QEvent, pyqtSignal
+from qutebrowser.qt.QtGui import QKeyEvent, QKeySequence
+from qutebrowser.qt.QtWidgets import QWidget
@pytest.fixture(params=key_data.KEYS, ids=lambda k: k.attribute)
diff --git a/tests/unit/keyinput/test_modeparsers.py b/tests/unit/keyinput/test_modeparsers.py
index 93f3b6df2..c48e1fdd7 100644
--- a/tests/unit/keyinput/test_modeparsers.py
+++ b/tests/unit/keyinput/test_modeparsers.py
@@ -19,12 +19,11 @@
"""Tests for mode parsers."""
-from qutebrowser.qt.QtCore import Qt
-from qutebrowser.qt.QtGui import QKeySequence
-
import pytest
from qutebrowser.keyinput import modeparsers, keyutils
+from qutebrowser.qt.QtCore import Qt
+from qutebrowser.qt.QtGui import QKeySequence
@pytest.fixture
diff --git a/tests/unit/mainwindow/statusbar/test_textbase.py b/tests/unit/mainwindow/statusbar/test_textbase.py
index 015d53394..fdc764b04 100644
--- a/tests/unit/mainwindow/statusbar/test_textbase.py
+++ b/tests/unit/mainwindow/statusbar/test_textbase.py
@@ -19,10 +19,10 @@
"""Test TextBase widget."""
-from qutebrowser.qt.QtCore import Qt
import pytest
from qutebrowser.mainwindow.statusbar.textbase import TextBase
+from qutebrowser.qt.QtCore import Qt
@pytest.mark.parametrize('elidemode, check', [
diff --git a/tests/unit/misc/test_miscwidgets.py b/tests/unit/misc/test_miscwidgets.py
index f0779399b..24fd288e8 100644
--- a/tests/unit/misc/test_miscwidgets.py
+++ b/tests/unit/misc/test_miscwidgets.py
@@ -19,12 +19,12 @@
import logging
-from qutebrowser.qt.QtCore import Qt, QSize
-from qutebrowser.qt.QtWidgets import QWidget
import pytest
from qutebrowser.misc import miscwidgets
from qutebrowser.browser import inspector
+from qutebrowser.qt.QtCore import Qt, QSize
+from qutebrowser.qt.QtWidgets import QWidget
class TestCommandLineEdit:
diff --git a/tests/unit/misc/test_throttle.py b/tests/unit/misc/test_throttle.py
index 0105eb0cc..5406f070d 100644
--- a/tests/unit/misc/test_throttle.py
+++ b/tests/unit/misc/test_throttle.py
@@ -23,10 +23,10 @@ from unittest import mock
import sip
import pytest
-from qutebrowser.qt.QtCore import QObject
from helpers import testutils
from qutebrowser.misc import throttle
+from qutebrowser.qt.QtCore import QObject
DELAY = 500 if testutils.ON_CI else 100
diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py
index 27f095d62..98258a548 100644
--- a/tests/unit/utils/test_standarddir.py
+++ b/tests/unit/utils/test_standarddir.py
@@ -28,10 +28,10 @@ import textwrap
import logging
import subprocess
-from qutebrowser.qt.QtCore import QStandardPaths
import pytest
from qutebrowser.utils import standarddir, utils, qtutils, version
+from qutebrowser.qt.QtCore import QStandardPaths
# Use a different application name for tests to make sure we don't change real
diff --git a/tests/unit/utils/test_urlutils.py b/tests/unit/utils/test_urlutils.py
index 1bec291d8..a7315aaab 100644
--- a/tests/unit/utils/test_urlutils.py
+++ b/tests/unit/utils/test_urlutils.py
@@ -24,8 +24,6 @@ import logging
import dataclasses
import urllib.parse
-from qutebrowser.qt.QtCore import QUrl
-from qutebrowser.qt.QtNetwork import QNetworkProxy
import pytest
import hypothesis
import hypothesis.strategies
@@ -33,6 +31,8 @@ import hypothesis.strategies
from qutebrowser.api import cmdutils
from qutebrowser.browser.network import pac
from qutebrowser.utils import utils, urlutils, usertypes
+from qutebrowser.qt.QtCore import QUrl
+from qutebrowser.qt.QtNetwork import QNetworkProxy
class FakeDNS: