diff options
author | Jimmy <jimmy@spalge.com> | 2022-04-17 10:29:13 +1200 |
---|---|---|
committer | Jimmy <jimmy@spalge.com> | 2022-04-30 18:23:14 +1200 |
commit | 98db309cfed1a993a0b2262398e1fb496d28645d (patch) | |
tree | 2f1c552c83b6324bb408c00929ef14e58090e98f | |
parent | 6f2040b16d4990695fb2d3385c23a0971097c266 (diff) | |
download | qutebrowser-98db309cfed1a993a0b2262398e1fb496d28645d.tar.gz qutebrowser-98db309cfed1a993a0b2262398e1fb496d28645d.zip |
Add pytest.importorskip wrapper
Now that we are importing all of the PyQt modules from the same places
raising an ImportError when an import fails would be inconvenient for
people trying to run the browser with only one backend available.
Instead they are set to `None`. This adjusts the PyQt related
importorskip directives to use our wrapper that'll also skip if the
target is `None`.
I don't expect pylint to be happy about the import orders.
I haven't tested without webengine available (and with webkit).
24 files changed, 89 insertions, 56 deletions
diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py index 43cd6995f..baaff6e06 100644 --- a/tests/end2end/test_invocations.py +++ b/tests/end2end/test_invocations.py @@ -790,11 +790,11 @@ def test_unavailable_backend(request, quteproc_new): qtwk_module = "PyQt5.QtWebKitWidgets" # Note we want to try the *opposite* backend here. if request.config.webengine: - pytest.importorskip(qtwe_module) + testutils.importorskip_ifnull(qtwe_module) module = qtwk_module backend = 'webkit' else: - pytest.importorskip(qtwk_module) + testutils.importorskip_ifnull(qtwk_module) module = qtwe_module backend = 'webengine' diff --git a/tests/helpers/fixtures.py b/tests/helpers/fixtures.py index 5225577fe..8a78f5cea 100644 --- a/tests/helpers/fixtures.py +++ b/tests/helpers/fixtures.py @@ -41,6 +41,7 @@ from qutebrowser.qt import QtWidgets, QtWebEngineWidgets, QtNetwork import helpers.stubs as stubsmod import qutebrowser +from helpers import testutils from qutebrowser.config import (config, configdata, configtypes, configexc, configfiles, configcache, stylesheet) from qutebrowser.api import config as configapi @@ -211,7 +212,7 @@ def web_tab_setup(qtbot, tab_registry, session_manager_stub, @pytest.fixture def webkit_tab(web_tab_setup, qtbot, cookiejar_and_cache, mode_manager, widget_container, download_stub, webpage, monkeypatch): - webkittab = pytest.importorskip('qutebrowser.browser.webkit.webkittab') + webkittab = testutils.importorskip_ifnull('qutebrowser.qt.QtWebPage') monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit) @@ -236,8 +237,8 @@ def webengine_tab(web_tab_setup, qtbot, redirect_webengine_data, tabwidget.current_index = 0 tabwidget.index_of = 0 - webenginetab = pytest.importorskip( - 'qutebrowser.browser.webengine.webenginetab') + webenginetab = testutils.importorskip_ifnull( + 'qutebrowser.qt.QtWebEngine') tab = webenginetab.WebEngineTab(win_id=0, mode_manager=mode_manager, private=False) @@ -263,10 +264,10 @@ def webengine_tab(web_tab_setup, qtbot, redirect_webengine_data, def web_tab(request): """A WebKitTab/WebEngineTab.""" if request.param == 'webkit': - pytest.importorskip('qutebrowser.browser.webkit.webkittab') + testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit') return request.getfixturevalue('webkit_tab') elif request.param == 'webengine': - pytest.importorskip('qutebrowser.browser.webengine.webenginetab') + testutils.importorskip_ifnull('qutebrowser.qt.QtWebWngine') return request.getfixturevalue('webengine_tab') else: raise utils.Unreachable @@ -437,7 +438,7 @@ def qnam(qapp): @pytest.fixture def webengineview(qtbot, monkeypatch, web_tab_setup): """Get a QWebEngineView if QtWebEngine is available.""" - QtWebEngineWidgets = pytest.importorskip('PyQt5.QtWebEngineWidgets') + QtWebEngineWidgets = testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine) view = QtWebEngineWidgets.QWebEngineView() qtbot.add_widget(view) @@ -448,7 +449,7 @@ def webengineview(qtbot, monkeypatch, web_tab_setup): @pytest.fixture def webpage(qnam, monkeypatch): """Get a new QWebPage object.""" - QtWebKitWidgets = pytest.importorskip('PyQt5.QtWebKitWidgets') + QtWebKitWidgets = testutils.importorskip_ifnull('PyQt5.QtWebKitWidgets') monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit) class WebPageStub(QtWebKitWidgets.QWebPage): @@ -473,7 +474,7 @@ def webpage(qnam, monkeypatch): @pytest.fixture def webview(qtbot, webpage): """Get a new QWebView object.""" - QtWebKitWidgets = pytest.importorskip('PyQt5.QtWebKitWidgets') + QtWebKitWidgets = testutils.importorskip_ifnull('PyQt5.QtWebKitWidgets') view = QtWebKitWidgets.QWebView() qtbot.add_widget(view) @@ -730,7 +731,7 @@ def webengine_versions(testdata_scheme): Calling qtwebengine_versions() initializes QtWebEngine, so we depend on testdata_scheme here, to make sure that happens before. """ - pytest.importorskip('PyQt5.QtWebEngineWidgets') + testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') return version.qtwebengine_versions() diff --git a/tests/helpers/testutils.py b/tests/helpers/testutils.py index 40031a433..d5b9aa60e 100644 --- a/tests/helpers/testutils.py +++ b/tests/helpers/testutils.py @@ -28,6 +28,7 @@ import contextlib import pathlib import importlib.util import importlib.machinery +from typing import Optional, Any import pytest @@ -308,3 +309,13 @@ def import_userscript(name): module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module + + +def importorskip_ifnull( + modname: str, minversion: Optional[str] = None, reason: Optional[str] = None +) -> Any: + """Wraps pytest.importorskip and also skips if the target is None.""" + result = pytest.importorskip(modname, minversion, reason) + if result is None: + raise pytest.Skipped + return result diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py index e41998b3c..5314672d8 100644 --- a/tests/unit/browser/test_history.py +++ b/tests/unit/browser/test_history.py @@ -24,6 +24,7 @@ import logging import pytest from qutebrowser.qt import QtWebKit, QtCore +from helpers import testutils from qutebrowser.browser import history from qutebrowser.utils import urlutils, usertypes from qutebrowser.api import cmdutils @@ -276,7 +277,7 @@ class TestHistoryInterface: @pytest.fixture def hist_interface(self, web_history): # pylint: disable=invalid-name - QtWebKit = pytest.importorskip('PyQt5.QtWebKit') + QtWebKit = testutils.importorskip_ifnull('PyQt5.QtWebKit') from qutebrowser.browser.webkit import webkithistory QWebHistoryInterface = QtWebKit.QWebHistoryInterface # pylint: enable=invalid-name @@ -303,16 +304,14 @@ class TestInit: if history.web_history is not None: history.web_history.setParent(None) history.web_history = None - try: + if QtWebKit and QtWebKit.QWebHistoryInterface: QtWebKit.QWebHistoryInterface.setDefaultInterface(None) - except ImportError: - pass @pytest.mark.parametrize('backend', [usertypes.Backend.QtWebEngine, usertypes.Backend.QtWebKit]) def test_init(self, backend, qapp, tmpdir, data_tmpdir, monkeypatch, cleanup_init): if backend == usertypes.Backend.QtWebKit: - pytest.importorskip('PyQt5.QtWebKitWidgets') + testutils.importorskip_ifnull('PyQt5.QtWebKitWidgets') else: assert backend == usertypes.Backend.QtWebEngine @@ -325,10 +324,10 @@ class TestInit: assert default_interface._history is history.web_history else: assert backend == usertypes.Backend.QtWebEngine - if QtWebKit.QWebHistoryInterface is None: - default_interface = None - else: + if QtWebKit and QtWebKit.QWebHistoryInterface: default_interface = QtWebKit.QWebHistoryInterface.defaultInterface() + else: + default_interface = None # For this to work, nothing can ever have called # setDefaultInterface before (so we need to test webengine before # webkit) diff --git a/tests/unit/browser/webengine/test_webengine_cookies.py b/tests/unit/browser/webengine/test_webengine_cookies.py index db50729c7..deba1cdf5 100644 --- a/tests/unit/browser/webengine/test_webengine_cookies.py +++ b/tests/unit/browser/webengine/test_webengine_cookies.py @@ -18,11 +18,13 @@ # along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. import pytest -from qutebrowser.qt import QtWebEngineWidgets, QtWebEngineCore, QtCore -pytest.importorskip('PyQt5.QtWebEngineCore') + +from helpers import testutils +testutils.importorskip_ifnull('PyQt5.QtWebEngineCore') from qutebrowser.browser.webengine import cookies from qutebrowser.utils import urlmatch +from qutebrowser.qt import QtWebEngineWidgets, QtWebEngineCore, QtCore @pytest.fixture diff --git a/tests/unit/browser/webengine/test_webenginedownloads.py b/tests/unit/browser/webengine/test_webenginedownloads.py index 546216c0e..620de6ba8 100644 --- a/tests/unit/browser/webengine/test_webenginedownloads.py +++ b/tests/unit/browser/webengine/test_webenginedownloads.py @@ -22,9 +22,11 @@ import base64 import dataclasses import pytest -pytest.importorskip('PyQt5.QtWebEngineWidgets') -from qutebrowser.qt import QtWebEngineWidgets +from helpers import testutils +testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') + +from qutebrowser.qt import QtWebEngineWidgets from qutebrowser.utils import urlutils, usertypes, utils from qutebrowser.browser.webengine import webenginedownloads diff --git a/tests/unit/browser/webengine/test_webengineinterceptor.py b/tests/unit/browser/webengine/test_webengineinterceptor.py index 9c15c7d5c..48aa0a465 100644 --- a/tests/unit/browser/webengine/test_webengineinterceptor.py +++ b/tests/unit/browser/webengine/test_webengineinterceptor.py @@ -20,12 +20,10 @@ """Test interceptor.py for webengine.""" -import pytest - -pytest.importorskip('PyQt5.QtWebEngineWidgets') +from helpers import testutils +testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') from qutebrowser.qt import QtWebEngineCore - from qutebrowser.browser.webengine import interceptor diff --git a/tests/unit/browser/webengine/test_webenginesettings.py b/tests/unit/browser/webengine/test_webenginesettings.py index 0f803a172..da3c47db2 100644 --- a/tests/unit/browser/webengine/test_webenginesettings.py +++ b/tests/unit/browser/webengine/test_webenginesettings.py @@ -21,7 +21,8 @@ import logging import pytest -QtWebEngineWidgets = pytest.importorskip('PyQt5.QtWebEngineWidgets') +from helpers import testutils +QtWebEngineWidgets = testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') from qutebrowser.browser.webengine import webenginesettings from qutebrowser.utils import usertypes diff --git a/tests/unit/browser/webengine/test_webenginetab.py b/tests/unit/browser/webengine/test_webenginetab.py index 3d8eec663..aa5182859 100644 --- a/tests/unit/browser/webengine/test_webenginetab.py +++ b/tests/unit/browser/webengine/test_webenginetab.py @@ -23,14 +23,15 @@ import logging import textwrap import pytest -QtWebEngineWidgets = pytest.importorskip("PyQt5.QtWebEngineWidgets") +from qutebrowser.browser import greasemonkey +from qutebrowser.utils import usertypes +from helpers import testutils + +QtWebEngineWidgets = testutils.importorskip_ifnull("PyQt5.QtWebEngineWidgets") QWebEnginePage = QtWebEngineWidgets.QWebEnginePage QWebEngineScriptCollection = QtWebEngineWidgets.QWebEngineScriptCollection QWebEngineScript = QtWebEngineWidgets.QWebEngineScript - -from qutebrowser.browser import greasemonkey -from qutebrowser.utils import usertypes -webenginetab = pytest.importorskip( +webenginetab = testutils.importorskip_ifnull( "qutebrowser.browser.webengine.webenginetab") pytestmark = pytest.mark.usefixtures('greasemonkey_manager') diff --git a/tests/unit/browser/webkit/test_mhtml.py b/tests/unit/browser/webkit/test_mhtml.py index dabffeb78..529077fb5 100644 --- a/tests/unit/browser/webkit/test_mhtml.py +++ b/tests/unit/browser/webkit/test_mhtml.py @@ -25,7 +25,10 @@ import uuid import pytest -mhtml = pytest.importorskip('qutebrowser.browser.webkit.mhtml') +from helpers import testutils + +testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit') +mhtml = testutils.importorskip_ifnull('qutebrowser.browser.webkit.mhtml') @pytest.fixture(autouse=True) diff --git a/tests/unit/browser/webkit/test_tabhistory.py b/tests/unit/browser/webkit/test_tabhistory.py index 3616c8fb2..e362d3f34 100644 --- a/tests/unit/browser/webkit/test_tabhistory.py +++ b/tests/unit/browser/webkit/test_tabhistory.py @@ -23,9 +23,10 @@ import dataclasses from typing import Any import pytest -pytest.importorskip('PyQt5.QtWebKit') -from qutebrowser.qt import QtWebKit +from helpers import testutils +testutils.importorskip_ifnull('PyQt5.QtWebKit') +from qutebrowser.qt import QtWebKit from qutebrowser.browser.webkit import tabhistory from qutebrowser.misc.sessions import TabHistoryItem as Item from qutebrowser.utils import qtutils diff --git a/tests/unit/browser/webkit/test_webkitelem.py b/tests/unit/browser/webkit/test_webkitelem.py index 4c3a30b11..2d8619758 100644 --- a/tests/unit/browser/webkit/test_webkitelem.py +++ b/tests/unit/browser/webkit/test_webkitelem.py @@ -27,7 +27,9 @@ import itertools import dataclasses import pytest -QWebElement = pytest.importorskip('PyQt5.QtWebKit').QWebElement + +from helpers import testutils +QWebElement = testutils.importorskip_ifnull('PyQt5.QtWebKit').QWebElement from qutebrowser.browser import browsertab from qutebrowser.browser.webkit import webkitelem diff --git a/tests/unit/browser/webkit/test_webkitsettings.py b/tests/unit/browser/webkit/test_webkitsettings.py index 8b30b85aa..ea4527369 100644 --- a/tests/unit/browser/webkit/test_webkitsettings.py +++ b/tests/unit/browser/webkit/test_webkitsettings.py @@ -17,8 +17,9 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. -import pytest -pytest.importorskip('PyQt5.QtWebKitWidgets') +from helpers import testutils + +testutils.importorskip_ifnull('PyQt5.QtWebKitWidgets') from qutebrowser.browser.webkit import webkitsettings diff --git a/tests/unit/browser/webkit/test_webview.py b/tests/unit/browser/webkit/test_webview.py index fcaaa2256..2b0662b58 100644 --- a/tests/unit/browser/webkit/test_webview.py +++ b/tests/unit/browser/webkit/test_webview.py @@ -18,7 +18,9 @@ # along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. import pytest -webview = pytest.importorskip('qutebrowser.browser.webkit.webview') + +from helpers import testutils +webview = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit') @pytest.fixture diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py index ceea3db35..01295c7d9 100644 --- a/tests/unit/completion/test_models.py +++ b/tests/unit/completion/test_models.py @@ -40,6 +40,7 @@ from qutebrowser.config import configdata, configtypes from qutebrowser.utils import usertypes from qutebrowser.mainwindow import tabbedbrowser from qutebrowser.qt import QtWebEngineWidgets, QtCore +from helpers import testutils def _check_completions(model, expected): @@ -1342,7 +1343,7 @@ def test_url_completion_benchmark(benchmark, info, @pytest.fixture def tab_with_history(fake_web_tab, tabbed_browser_stubs, info, monkeypatch): """Returns a fake tab with some fake history items.""" - pytest.importorskip('PyQt5.QtWebEngineWidgets') + testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') tab = fake_web_tab(QtCore.QUrl('https://github.com'), 'GitHub', 0) current_idx = 2 monkeypatch.setattr( diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py index 076ff6e3c..60d29e430 100644 --- a/tests/unit/config/test_qtargs.py +++ b/tests/unit/config/test_qtargs.py @@ -126,7 +126,7 @@ class TestWebEngineArgs: @pytest.fixture(autouse=True) def ensure_webengine(self, monkeypatch): """Skip all tests if QtWebEngine is unavailable.""" - pytest.importorskip("PyQt5.QtWebEngine") + testutils.importorskip_ifnull("PyQt5.QtWebEngine") monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine) @pytest.mark.parametrize('backend, qt_version, expected', [ diff --git a/tests/unit/config/test_qtargs_locale_workaround.py b/tests/unit/config/test_qtargs_locale_workaround.py index 96d619243..2a4d6c81c 100644 --- a/tests/unit/config/test_qtargs_locale_workaround.py +++ b/tests/unit/config/test_qtargs_locale_workaround.py @@ -24,9 +24,10 @@ from qutebrowser.qt import QtCore from qutebrowser.utils import utils from qutebrowser.config import qtargs +from helpers import testutils -pytest.importorskip('PyQt5.QtWebEngineWidgets') +testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') @pytest.fixture(autouse=True) diff --git a/tests/unit/config/test_websettings.py b/tests/unit/config/test_websettings.py index f42563727..4a9ff7cb6 100644 --- a/tests/unit/config/test_websettings.py +++ b/tests/unit/config/test_websettings.py @@ -22,6 +22,7 @@ import pytest from qutebrowser.config import websettings from qutebrowser.misc import objects from qutebrowser.utils import usertypes +from helpers import testutils @pytest.mark.parametrize([ # noqa: PT006 @@ -80,7 +81,7 @@ def test_parse_user_agent(user_agent, os_info, webkit_version, def test_user_agent(monkeypatch, config_stub, qapp): - webenginesettings = pytest.importorskip( + webenginesettings = testutils.importorskip_ifnull( "qutebrowser.browser.webengine.webenginesettings") monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine) webenginesettings.init_user_agent() diff --git a/tests/unit/javascript/position_caret/test_position_caret.py b/tests/unit/javascript/position_caret/test_position_caret.py index 70a1df333..aa92319a6 100644 --- a/tests/unit/javascript/position_caret/test_position_caret.py +++ b/tests/unit/javascript/position_caret/test_position_caret.py @@ -21,8 +21,10 @@ import pytest -QWebSettings = pytest.importorskip("PyQt5.QtWebKit").QWebSettings -QWebPage = pytest.importorskip("PyQt5.QtWebKitWidgets").QWebPage +from helpers import testutils + +QWebSettings = testutils.importorskip_ifnull("PyQt5.QtWebKit").QWebSettings +QWebPage = testutils.importorskip_ifnull("PyQt5.QtWebKitWidgets").QWebPage @pytest.fixture(autouse=True) diff --git a/tests/unit/javascript/stylesheet/test_stylesheet_js.py b/tests/unit/javascript/stylesheet/test_stylesheet_js.py index 1eebe3b7f..760bdced1 100644 --- a/tests/unit/javascript/stylesheet/test_stylesheet_js.py +++ b/tests/unit/javascript/stylesheet/test_stylesheet_js.py @@ -22,10 +22,11 @@ import pathlib import pytest -QtWebEngineWidgets = pytest.importorskip("PyQt5.QtWebEngineWidgets") -QWebEngineProfile = QtWebEngineWidgets.QWebEngineProfile - from qutebrowser.utils import javascript +from helpers import testutils + +QtWebEngineWidgets = testutils.importorskip_ifnull("PyQt5.QtWebEngineWidgets") +QWebEngineProfile = QtWebEngineWidgets.QWebEngineProfile DEFAULT_BODY_BG = "rgba(0, 0, 0, 0)" diff --git a/tests/unit/misc/test_elf.py b/tests/unit/misc/test_elf.py index 86060bbde..47110db4f 100644 --- a/tests/unit/misc/test_elf.py +++ b/tests/unit/misc/test_elf.py @@ -26,6 +26,7 @@ from hypothesis import strategies as hst from qutebrowser.misc import elf from qutebrowser.utils import utils +from helpers import testutils @pytest.mark.parametrize('fmt, expected', [ @@ -57,7 +58,7 @@ def test_result(qapp, caplog): If that happens, please report a bug about it! """ - pytest.importorskip('PyQt5.QtWebEngineCore') + testutils.importorskip_ifnull('PyQt5.QtWebEngineCore') versions = elf.parse_webenginecore() assert versions is not None diff --git a/tests/unit/misc/test_sessions.py b/tests/unit/misc/test_sessions.py index ddbb0703a..cc87de64d 100644 --- a/tests/unit/misc/test_sessions.py +++ b/tests/unit/misc/test_sessions.py @@ -23,15 +23,15 @@ import logging import pytest import yaml -QWebView = pytest.importorskip('PyQt5.QtWebKitWidgets').QWebView + +from helpers import testutils +QWebView = testutils.importorskip_ifnull('PyQt5.QtWebKitWidgets').QWebView from qutebrowser.misc import sessions from qutebrowser.misc.sessions import TabHistoryItem as Item from qutebrowser.utils import objreg, qtutils from qutebrowser.browser.webkit import tabhistory from qutebrowser.qt import QtCore - - pytestmark = pytest.mark.qt_log_ignore('QIODevice::read.*: device not open') webengine_refactoring_xfail = pytest.mark.xfail( diff --git a/tests/unit/utils/test_debug.py b/tests/unit/utils/test_debug.py index 4a24d0c44..f81cc29d4 100644 --- a/tests/unit/utils/test_debug.py +++ b/tests/unit/utils/test_debug.py @@ -29,6 +29,7 @@ import pytest from qutebrowser.utils import debug from qutebrowser.misc import objects from qutebrowser.qt import QtWidgets, QtCore +from helpers import testutils @debug.log_events @@ -185,7 +186,7 @@ class TestQFlagsKey: No idea what's happening here exactly... """ - qwebpage = pytest.importorskip("PyQt5.QtWebKitWidgets").QWebPage + qwebpage = testutils.importorskip_ifnull("PyQt5.QtWebKitWidgets").QWebPage flags = qwebpage.FindWrapsAroundDocument flags |= qwebpage.FindBackward diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index d65a91082..9ed7e3b39 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -40,6 +40,7 @@ from qutebrowser.config import config, websettings from qutebrowser.utils import version, usertypes, utils, standarddir from qutebrowser.misc import pastebin, objects, elf from qutebrowser.browser import pdfjs +from helpers import testutils try: from qutebrowser.browser.webengine import webenginesettings @@ -1059,7 +1060,7 @@ class TestChromiumVersion: @pytest.fixture(autouse=True) def clear_parsed_ua(self, monkeypatch): - pytest.importorskip('PyQt5.QtWebEngineWidgets') + testutils.importorskip_ifnull('PyQt5.QtWebEngineWidgets') if webenginesettings is not None: # Not available with QtWebKit monkeypatch.setattr(webenginesettings, 'parsed_user_agent', None) @@ -1341,7 +1342,7 @@ class TestOpenGLInfo: def test_func(self, qapp): """Simply call version.opengl_info() and see if it doesn't crash.""" - pytest.importorskip("PyQt5.QtOpenGL") + testutils.importorskip_ifnull("PyQt5.QtOpenGL") version.opengl_info() def test_func_fake(self, qapp, monkeypatch): |