summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-03-07 22:04:54 +0100
committerFlorian Bruhin <git@the-compiler.org>2017-03-07 22:06:33 +0100
commit89eb5224b0e29050ae183e5bef97e2ea4c8914b9 (patch)
treeff2abc4b0760226ef2012099552ec225c18b95e1
parent1f850b8de94a467d42e030534d65557735209c02 (diff)
downloadqutebrowser-89eb5224b0e29050ae183e5bef97e2ea4c8914b9.tar.gz
qutebrowser-89eb5224b0e29050ae183e5bef97e2ea4c8914b9.zip
Fix compiled version check
Fixes #2412 (cherry picked from commit 7c9d004bbc4d576ad32dcba8338567636bf39a3c)
-rw-r--r--qutebrowser/utils/qtutils.py5
-rw-r--r--tests/unit/utils/test_qtutils.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index 10c28a7ab..6fc5956a6 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -88,9 +88,12 @@ def version_check(version, op=operator.ge, strict=False):
op: The operator to use for the check.
strict: If given, also check the compiled Qt version.
"""
+ if strict:
+ assert op in [operator.ge, operator.lt], op
parsed = pkg_resources.parse_version(version)
result = op(pkg_resources.parse_version(qVersion()), parsed)
- if result and strict:
+ if ((strict and op == operator.ge and result) or
+ (strict and op == operator.lt and not result)):
result = op(pkg_resources.parse_version(QT_VERSION_STR), parsed)
return result
diff --git a/tests/unit/utils/test_qtutils.py b/tests/unit/utils/test_qtutils.py
index 162845b1a..6600363d8 100644
--- a/tests/unit/utils/test_qtutils.py
+++ b/tests/unit/utils/test_qtutils.py
@@ -52,6 +52,9 @@ import overflow_test_cases
# strict=True
('5.4.0', '5.3.0', '5.4.0', operator.ge, False),
('5.4.0', '5.4.0', '5.4.0', operator.ge, True),
+
+ ('5.4.0', '5.3.0', '5.4.0', operator.lt, True),
+ ('5.4.0', '5.4.0', '5.4.0', operator.lt, False),
])
def test_version_check(monkeypatch, qversion, compiled, version, op, expected):
"""Test for version_check().