diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-03-18 10:54:59 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-03-18 10:55:22 +0100 |
commit | fb0154ae26b09accc08c9ab7fa7cbcbe9fe2578c (patch) | |
tree | 31fad944ee798a76d93f4330c069bb4c76f2f366 | |
parent | 8adac6948bb5c8b41da4650229f8c3469f7ee033 (diff) | |
download | qutebrowser-fb0154ae26b09accc08c9ab7fa7cbcbe9fe2578c.tar.gz qutebrowser-fb0154ae26b09accc08c9ab7fa7cbcbe9fe2578c.zip |
Import webenginesettings lazily in version
-rw-r--r-- | qutebrowser/utils/standarddir.py | 3 | ||||
-rw-r--r-- | qutebrowser/utils/version.py | 8 | ||||
-rw-r--r-- | tests/unit/utils/test_version.py | 19 |
3 files changed, 12 insertions, 18 deletions
diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py index 4a571696f..4ea7e5dbf 100644 --- a/qutebrowser/utils/standarddir.py +++ b/qutebrowser/utils/standarddir.py @@ -30,7 +30,7 @@ from typing import Iterator, Optional from PyQt5.QtCore import QStandardPaths from PyQt5.QtWidgets import QApplication -from qutebrowser.utils import log, debug, utils +from qutebrowser.utils import log, debug, utils, version # The cached locations _locations = {} @@ -232,7 +232,6 @@ def _init_runtime(args: Optional[argparse.Namespace]) -> None: # Unfortunately this path could get too long for sockets (which have a # maximum length of 104 chars), so we don't add the username here... - from qutebrowser.utils import version if version.is_sandboxed(): *parts, app_name = os.path.split(path) assert app_name == APPNAME, app_name diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index 97b286fba..63097bb8b 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -58,12 +58,6 @@ from qutebrowser.misc import objects, earlyinit, sql, httpclient, pastebin, elf from qutebrowser.browser import pdfjs from qutebrowser.config import config, websettings -try: - from qutebrowser.browser.webengine import webenginesettings -except ImportError: # pragma: no cover - webenginesettings = None # type: ignore[assignment] - - _LOGO = r''' ______ ,, ,.-"` | ,-` | @@ -684,7 +678,7 @@ def qtwebengine_versions(avoid_init: bool = False) -> WebEngineVersions: - https://www.chromium.org/developers/calendar - https://chromereleases.googleblog.com/ """ - assert webenginesettings is not None + from qutebrowser.browser.webengine import webenginesettings if webenginesettings.parsed_user_agent is None and not avoid_init: webenginesettings.init_user_agent() diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index c91017e84..4b01be537 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -40,6 +40,11 @@ from qutebrowser.utils import version, usertypes, utils, standarddir from qutebrowser.misc import pastebin, objects, elf from qutebrowser.browser import pdfjs +try: + from qutebrowser.browser.webengine import webenginesettings +except ImportError: + webenginesettings = None + @pytest.mark.parametrize('os_release, expected', [ # No file @@ -1004,7 +1009,6 @@ class TestWebEngineVersions: versions = version.WebEngineVersions.from_pyqt(pyqt_webengine_version) - from qutebrowser.browser.webengine import webenginesettings webenginesettings.init_user_agent() expected = webenginesettings.parsed_user_agent.upstream_browser_version @@ -1045,26 +1049,24 @@ class TestChromiumVersion: @pytest.fixture(autouse=True) def clear_parsed_ua(self, monkeypatch): pytest.importorskip('PyQt5.QtWebEngineWidgets') - if version.webenginesettings is not None: + if webenginesettings is not None: # Not available with QtWebKit - monkeypatch.setattr(version.webenginesettings, 'parsed_user_agent', None) + monkeypatch.setattr(webenginesettings, 'parsed_user_agent', None) def test_fake_ua(self, monkeypatch, caplog): ver = '77.0.3865.98' - version.webenginesettings._init_user_agent_str( - _QTWE_USER_AGENT.format(ver)) + webenginesettings._init_user_agent_str(_QTWE_USER_AGENT.format(ver)) assert version.qtwebengine_versions().chromium == ver def test_prefers_saved_user_agent(self, monkeypatch): - version.webenginesettings._init_user_agent_str(_QTWE_USER_AGENT.format('87')) + webenginesettings._init_user_agent_str(_QTWE_USER_AGENT.format('87')) class FakeProfile: def defaultProfile(self): raise AssertionError("Should not be called") - monkeypatch.setattr(version.webenginesettings, 'QWebEngineProfile', - FakeProfile()) + monkeypatch.setattr(webenginesettings, 'QWebEngineProfile', FakeProfile()) version.qtwebengine_versions() @@ -1250,7 +1252,6 @@ def test_version_info(params, stubs, monkeypatch, config_stub): if params.with_webkit: patches['qWebKitVersion'] = lambda: 'WEBKIT VERSION' patches['objects.backend'] = usertypes.Backend.QtWebKit - patches['webenginesettings'] = None substitutions['backend'] = 'new QtWebKit (WebKit WEBKIT VERSION)' else: monkeypatch.delattr(version, 'qtutils.qWebKitVersion', raising=False) |