summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-04-15 11:00:18 +0200
committerFlorian Bruhin <me@the-compiler.org>2021-04-29 09:34:51 +0200
commit1167b5c3e83cd8961ba5d680786225f2eaa582f6 (patch)
tree47ff92c20dd2fa579852cba88f147441bc885680
parent7d93098fd0f305f842940d94963c2b9aa6186505 (diff)
downloadqutebrowser-1167b5c3e83cd8961ba5d680786225f2eaa582f6.tar.gz
qutebrowser-1167b5c3e83cd8961ba5d680786225f2eaa582f6.zip
Add QUTE_QTWEBENGINE_VERSION_OVERRIDE
See https://github.com/NixOS/nixpkgs/pull/119376#issuecomment-820073044 (cherry picked from commit febb921040b6670d9b1694a6ce55ae39384d1306)
-rw-r--r--qutebrowser/utils/version.py8
-rw-r--r--tests/unit/utils/test_version.py10
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: