diff options
author | Florian Bruhin <me@the-compiler.org> | 2019-12-23 15:30:22 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2019-12-23 15:30:22 +0100 |
commit | dcf8d833b5342e3121a23f96cb7bf67a029b9421 (patch) | |
tree | 38a278032964d75a99639f80eab511769e41094e | |
parent | 9ab1ea091ce20e19341d43c9ff11667249f63454 (diff) | |
download | qutebrowser-dcf8d833b5342e3121a23f96cb7bf67a029b9421.tar.gz qutebrowser-dcf8d833b5342e3121a23f96cb7bf67a029b9421.zip |
Handle _chromium_version without webenginesettings module
This can happen when we intend to start with the QtWebEngine backend (so
_chromium_version will get called), but we don't actually have the QtWebEngine
module available. If there's a crash while the backendproblem dialog is shown,
this results in webenginesettings being None here.
-rw-r--r-- | qutebrowser/utils/version.py | 3 | ||||
-rw-r--r-- | tests/unit/utils/test_version.py | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index 6f8628daf..50a00c20b 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -364,6 +364,9 @@ def _chromium_version() -> str: Also see https://www.chromium.org/developers/calendar and https://chromereleases.googleblog.com/ """ + if webenginesettings is None: + return 'unavailable' # type: ignore + if webenginesettings.parsed_user_agent is None: webenginesettings.init_user_agent() assert webenginesettings.parsed_user_agent is not None diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index 043621667..d1f692540 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -863,8 +863,12 @@ def test_chromium_version(monkeypatch, caplog): version.webenginesettings._init_user_agent_str( _QTWE_USER_AGENT.format(ver)) - with caplog.at_level(logging.ERROR): - assert version._chromium_version() == ver + assert version._chromium_version() == ver + + +def test_chromium_version_no_webengine(monkeypatch): + monkeypatch.setattr(version, 'webenginesettings', None) + assert version._chromium_version() == 'unavailable' def test_chromium_version_prefers_saved_user_agent(monkeypatch): |