diff options
Diffstat (limited to 'tests/helpers/testutils.py')
-rw-r--r-- | tests/helpers/testutils.py | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/tests/helpers/testutils.py b/tests/helpers/testutils.py index 4c6d253d7..0c8cdb8d0 100644 --- a/tests/helpers/testutils.py +++ b/tests/helpers/testutils.py @@ -21,6 +21,7 @@ import io import re +import enum import gzip import pprint import os.path @@ -31,17 +32,12 @@ import importlib.machinery import pytest -from PyQt5.QtGui import QColor +from qutebrowser.qt.gui import QColor -from qutebrowser.utils import qtutils, log, utils, version +from qutebrowser.utils import log, utils, version ON_CI = 'CI' in os.environ -qt513 = pytest.mark.skipif( - not qtutils.version_check('5.13'), reason="Needs Qt 5.13 or newer") -qt514 = pytest.mark.skipif( - not qtutils.version_check('5.14'), reason="Needs Qt 5.14 or newer") - class Color(QColor): @@ -273,27 +269,13 @@ def disable_seccomp_bpf_sandbox(): newer kernels. """ try: - from PyQt5 import QtWebEngine # pylint: disable=unused-import + from qutebrowser.qt import webenginecore # pylint: disable=unused-import except ImportError: # no QtWebEngine available return False - affected_versions = set() - for base, patch_range in [ - # 5.12.0 to 5.12.10 (inclusive) - ('5.12', range(0, 11)), - # 5.13.0 to 5.13.2 (inclusive) - ('5.13', range(0, 3)), - # 5.14.0 - ('5.14', [0]), - # 5.15.0 to 5.15.2 (inclusive) - ('5.15', range(0, 3)), - ]: - for patch in patch_range: - affected_versions.add(utils.VersionNumber.parse(f'{base}.{patch}')) - versions = version.qtwebengine_versions(avoid_init=True) - return versions.webengine in affected_versions + return versions.webengine == utils.VersionNumber(5, 15, 2) def import_userscript(name): @@ -311,3 +293,17 @@ def import_userscript(name): module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module + + +def enum_members(base, enumtype): + """Get all members of a Qt enum.""" + if issubclass(enumtype, enum.Enum): + # PyQt 6 + return {m.name: m for m in enumtype} + else: + # PyQt 5 + return { + name: value + for name, value in vars(base).items() + if isinstance(value, enumtype) + } |