From 1167b5c3e83cd8961ba5d680786225f2eaa582f6 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 15 Apr 2021 11:00:18 +0200 Subject: Add QUTE_QTWEBENGINE_VERSION_OVERRIDE See https://github.com/NixOS/nixpkgs/pull/119376#issuecomment-820073044 (cherry picked from commit febb921040b6670d9b1694a6ce55ae39384d1306) --- qutebrowser/utils/version.py | 8 ++++++-- tests/unit/utils/test_version.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index 2bac125ed..f5bc5eab2 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -710,7 +710,7 @@ class WebEngineVersions: ) @classmethod - def from_qt(cls, qt_version: str) -> 'WebEngineVersions': + def from_qt(cls, qt_version: str, *, source: str = 'Qt') -> 'WebEngineVersions': """Get the versions based on the Qt version. This is called if we don't have PYQT_WEBENGINE_VERSION, i.e. with PyQt 5.12. @@ -719,7 +719,7 @@ class WebEngineVersions: return cls( webengine=parsed, chromium=cls._infer_chromium_version(parsed), - source='Qt', + source=source, ) @@ -750,6 +750,10 @@ def qtwebengine_versions(avoid_init: bool = False) -> WebEngineVersions: if webenginesettings.parsed_user_agent is not None: return WebEngineVersions.from_ua(webenginesettings.parsed_user_agent) + override = os.environ.get('QUTE_QTWEBENGINE_VERSION_OVERRIDE') + if override is not None: + return WebEngineVersions.from_qt(override, source='override') + versions = elf.parse_webenginecore() if versions is not None: return WebEngineVersions.from_elf(versions) diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index b50352e34..734b70468 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -1174,6 +1174,16 @@ class TestChromiumVersion: assert versions.source == 'importlib' assert versions.webengine == expected + @pytest.mark.parametrize('override', [ + utils.VersionNumber(5, 12, 10), + utils.VersionNumber(5, 15, 3), + ]) + def test_override(self, monkeypatch, override): + monkeypatch.setenv('QUTE_QTWEBENGINE_VERSION_OVERRIDE', str(override)) + versions = version.qtwebengine_versions(avoid_init=True) + assert versions.source == 'override' + assert versions.webengine == override + @dataclasses.dataclass class VersionParams: -- cgit v1.2.3-54-g00ecf