summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy <jimmy@spalge.com>2022-04-17 10:29:13 +1200
committerJimmy <jimmy@spalge.com>2022-04-30 18:23:14 +1200
commit98db309cfed1a993a0b2262398e1fb496d28645d (patch)
tree2f1c552c83b6324bb408c00929ef14e58090e98f
parent6f2040b16d4990695fb2d3385c23a0971097c266 (diff)
downloadqutebrowser-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).
-rw-r--r--tests/end2end/test_invocations.py4
-rw-r--r--tests/helpers/fixtures.py19
-rw-r--r--tests/helpers/testutils.py11
-rw-r--r--tests/unit/browser/test_history.py15
-rw-r--r--tests/unit/browser/webengine/test_webengine_cookies.py6
-rw-r--r--tests/unit/browser/webengine/test_webenginedownloads.py6
-rw-r--r--tests/unit/browser/webengine/test_webengineinterceptor.py6
-rw-r--r--tests/unit/browser/webengine/test_webenginesettings.py3
-rw-r--r--tests/unit/browser/webengine/test_webenginetab.py11
-rw-r--r--tests/unit/browser/webkit/test_mhtml.py5
-rw-r--r--tests/unit/browser/webkit/test_tabhistory.py5
-rw-r--r--tests/unit/browser/webkit/test_webkitelem.py4
-rw-r--r--tests/unit/browser/webkit/test_webkitsettings.py5
-rw-r--r--tests/unit/browser/webkit/test_webview.py4
-rw-r--r--tests/unit/completion/test_models.py3
-rw-r--r--tests/unit/config/test_qtargs.py2
-rw-r--r--tests/unit/config/test_qtargs_locale_workaround.py3
-rw-r--r--tests/unit/config/test_websettings.py3
-rw-r--r--tests/unit/javascript/position_caret/test_position_caret.py6
-rw-r--r--tests/unit/javascript/stylesheet/test_stylesheet_js.py7
-rw-r--r--tests/unit/misc/test_elf.py3
-rw-r--r--tests/unit/misc/test_sessions.py6
-rw-r--r--tests/unit/utils/test_debug.py3
-rw-r--r--tests/unit/utils/test_version.py5
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):