summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/config/qtargs.py7
-rw-r--r--qutebrowser/utils/qtutils.py8
-rw-r--r--qutebrowser/utils/version.py8
-rw-r--r--tests/helpers/fixtures.py5
-rw-r--r--tests/unit/misc/test_ipc.py17
-rw-r--r--tests/unit/utils/test_standarddir.py5
-rw-r--r--tests/unit/utils/test_version.py4
7 files changed, 33 insertions, 21 deletions
diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py
index 540f334df..01a5c1d97 100644
--- a/qutebrowser/config/qtargs.py
+++ b/qutebrowser/config/qtargs.py
@@ -28,7 +28,7 @@ from typing import Any, Dict, Iterator, List, Optional, Sequence, Tuple
from qutebrowser.config import config
from qutebrowser.misc import objects
from qutebrowser.utils import usertypes, qtutils, utils, log, version
-from qutebrowser.qt import QtCore
+from qutebrowser.qt import QtCore, QtWebEngine
_ENABLE_FEATURES = '--enable-features='
@@ -60,10 +60,7 @@ def qt_args(namespace: argparse.Namespace) -> List[str]:
assert objects.backend == usertypes.Backend.QtWebKit, objects.backend
return argv
- try:
- # pylint: disable=unused-import
- from qutebrowser.browser.webengine import webenginesettings
- except ImportError:
+ if not QtWebEngine:
# This code runs before a QApplication is available, so before
# backendproblem.py is run to actually inform the user of the missing
# backend. Thus, we could end up in a situation where we're here, but
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index bf109095e..9b0186b55 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -34,7 +34,9 @@ import contextlib
from typing import (Any, AnyStr, TYPE_CHECKING, BinaryIO, IO, Iterator,
Optional, Union, Tuple, cast)
from qutebrowser.qt import QtWebKit, QtGui
-if not QtWebKit:
+if QtWebKit:
+ qWebKitVersion = QtWebKit.qWebKitVersion # noqa: N816
+else:
qWebKitVersion = None # type: ignore[assignment] # noqa: N816
if TYPE_CHECKING:
from qutebrowser.qt import QWebHistory
@@ -111,8 +113,8 @@ MAX_WORLD_ID = 256
def is_new_qtwebkit() -> bool:
"""Check if the given version is a new QtWebKit."""
- assert QtWebKit.qWebKitVersion is not None
- return (utils.VersionNumber.parse(QtWebKit.qWebKitVersion()) >
+ assert qWebKitVersion is not None
+ return (utils.VersionNumber.parse(qWebKitVersion()) >
utils.VersionNumber.parse('538.1'))
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index 18a6d7e27..7e819e9ab 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -38,8 +38,10 @@ from typing import (Mapping, Optional, Sequence, Tuple, ClassVar, Dict, cast,
TYPE_CHECKING)
from qutebrowser.qt import QtWidgets, QtWebKit, QtWebEngine, QtNetwork
-if not QtWebKit:
- qWebKitVersion = None
+if QtWebKit:
+ qWebKitVersion = QtWebKit.qWebKitVersion # noqa: N816
+else:
+ qWebKitVersion = None # noqa: N816
if QtWebEngine:
PYQT_WEBENGINE_VERSION_STR = QtWebEngine.PYQT_WEBENGINE_VERSION_STR
else:
@@ -765,7 +767,7 @@ def qtwebengine_versions(*, avoid_init: bool = False) -> WebEngineVersions:
def _backend() -> str:
"""Get the backend line with relevant information."""
if objects.backend == usertypes.Backend.QtWebKit:
- return 'new QtWebKit (WebKit {})'.format(QtWebKit.qWebKitVersion())
+ return 'new QtWebKit (WebKit {})'.format(qWebKitVersion())
elif objects.backend == usertypes.Backend.QtWebEngine:
return str(qtwebengine_versions(
avoid_init='avoid-chromium-init' in objects.debug_flags))
diff --git a/tests/helpers/fixtures.py b/tests/helpers/fixtures.py
index d825ea7fc..ebd9dcde2 100644
--- a/tests/helpers/fixtures.py
+++ b/tests/helpers/fixtures.py
@@ -173,15 +173,14 @@ def greasemonkey_manager(monkeypatch, data_tmpdir, config_tmpdir):
@pytest.fixture(scope='session')
def testdata_scheme(qapp):
- try:
+ from qutebrowser.qt import QtWebEngine
+ if QtWebEngine:
global _qute_scheme_handler
from qutebrowser.browser.webengine import webenginequtescheme
webenginequtescheme.init()
_qute_scheme_handler = webenginequtescheme.QuteSchemeHandler(
parent=qapp)
_qute_scheme_handler.install(QtWebEngineWidgets.QWebEngineProfile.defaultProfile())
- except ImportError:
- pass
@qutescheme.add_handler('testdata')
def handler(url):
diff --git a/tests/unit/misc/test_ipc.py b/tests/unit/misc/test_ipc.py
index 7e0ffb98b..fdd543d2a 100644
--- a/tests/unit/misc/test_ipc.py
+++ b/tests/unit/misc/test_ipc.py
@@ -661,12 +661,21 @@ class TestSendOrListen:
@pytest.fixture
def qlocalsocket_mock(self, mocker):
+ original_errors = {
+ name: getattr(QtNetwork.QLocalSocket, name)
+ for name in
+ [
+ 'UnknownSocketError',
+ 'UnconnectedState',
+ 'ConnectionRefusedError',
+ 'ServerNotFoundError',
+ 'PeerClosedError'
+ ]
+ }
m = mocker.patch('qutebrowser.misc.ipc.QtNetwork.QLocalSocket', autospec=True)
m().errorString.return_value = "Error string"
- for name in ['UnknownSocketError', 'UnconnectedState',
- 'ConnectionRefusedError', 'ServerNotFoundError',
- 'PeerClosedError']:
- setattr(m, name, getattr(QtNetwork.QLocalSocket, name))
+ for name, error in original_errors.items():
+ setattr(m, name, error)
return m
@pytest.mark.linux(reason="Flaky on Windows and macOS")
diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py
index e1c0a3f6d..e601f1213 100644
--- a/tests/unit/utils/test_standarddir.py
+++ b/tests/unit/utils/test_standarddir.py
@@ -471,7 +471,10 @@ def test_no_qapplication(qapp, tmpdir, monkeypatch):
sys.path = sys.argv[1:] # make sure we have the same python path
- from PyQt5.QtWidgets import QApplication
+ try:
+ from PyQt5.QtWidgets import QApplication
+ except ImportError:
+ from PyQt6.QtWidgets import QApplication
from qutebrowser.utils import standarddir
assert QApplication.instance() is None
diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py
index 929d69d99..3ffb4cdea 100644
--- a/tests/unit/utils/test_version.py
+++ b/tests/unit/utils/test_version.py
@@ -42,9 +42,9 @@ from qutebrowser.misc import pastebin, objects, elf
from qutebrowser.browser import pdfjs
from helpers import testutils
-try:
+if QtWebEngine:
from qutebrowser.browser.webengine import webenginesettings
-except ImportError:
+else:
webenginesettings = None