From 7c9d004bbc4d576ad32dcba8338567636bf39a3c Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 7 Mar 2017 22:04:54 +0100 Subject: [PATCH] Fix compiled version check Fixes #2412 --- qutebrowser/utils/qtutils.py | 5 ++++- tests/unit/utils/test_qtutils.py | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 71cf65a4f..7cc0742f5 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().