diff options
-rw-r--r-- | qutebrowser/config/qtargs.py | 7 | ||||
-rw-r--r-- | qutebrowser/utils/qtutils.py | 8 | ||||
-rw-r--r-- | qutebrowser/utils/version.py | 8 | ||||
-rw-r--r-- | tests/helpers/fixtures.py | 5 | ||||
-rw-r--r-- | tests/unit/misc/test_ipc.py | 17 | ||||
-rw-r--r-- | tests/unit/utils/test_standarddir.py | 5 | ||||
-rw-r--r-- | tests/unit/utils/test_version.py | 4 |
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 |