summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/end2end/test_invocations.py8
-rw-r--r--tests/helpers/fixtures.py19
-rw-r--r--tests/helpers/testutils.py14
-rw-r--r--tests/unit/browser/test_history.py4
-rw-r--r--tests/unit/browser/webengine/test_webengine_cookies.py2
-rw-r--r--tests/unit/browser/webengine/test_webenginedownloads.py2
-rw-r--r--tests/unit/browser/webengine/test_webengineinterceptor.py2
-rw-r--r--tests/unit/browser/webengine/test_webenginesettings.py2
-rw-r--r--tests/unit/browser/webengine/test_webenginetab.py4
-rw-r--r--tests/unit/browser/webkit/test_mhtml.py4
-rw-r--r--tests/unit/browser/webkit/test_tabhistory.py2
-rw-r--r--tests/unit/browser/webkit/test_webkitelem.py2
-rw-r--r--tests/unit/browser/webkit/test_webkitsettings.py2
-rw-r--r--tests/unit/browser/webkit/test_webview.py6
-rw-r--r--tests/unit/completion/test_models.py2
-rw-r--r--tests/unit/config/test_qtargs.py2
-rw-r--r--tests/unit/config/test_qtargs_locale_workaround.py2
-rw-r--r--tests/unit/config/test_websettings.py5
-rw-r--r--tests/unit/javascript/position_caret/test_position_caret.py4
-rw-r--r--tests/unit/javascript/stylesheet/test_stylesheet_js.py2
-rw-r--r--tests/unit/misc/test_elf.py2
-rw-r--r--tests/unit/misc/test_sessions.py2
-rw-r--r--tests/unit/utils/test_debug.py2
-rw-r--r--tests/unit/utils/test_version.py6
24 files changed, 54 insertions, 48 deletions
diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py
index 502decc0e..44e118d41 100644
--- a/tests/end2end/test_invocations.py
+++ b/tests/end2end/test_invocations.py
@@ -786,15 +786,15 @@ def test_unavailable_backend(request, quteproc_new):
that the chosen backend is actually available - i.e., that the error message is
properly printed, rather than an unhandled exception.
"""
- qtwe_module = "qutebrowser.qt.QtWebEngineWidgets"
- qtwk_module = "qutebrowser.qt.QtWebKitWidgets"
+ qtwe_module = "QtWebEngineWidgets"
+ qtwk_module = "QtWebKitWidgets"
# Note we want to try the *opposite* backend here.
if request.config.webengine:
- testutils.importorskip_ifnull(qtwe_module)
+ testutils.qt_module_skip(qtwe_module)
module = qtwk_module
backend = 'webkit'
else:
- testutils.importorskip_ifnull(qtwk_module)
+ testutils.qt_module_skip(qtwk_module)
module = qtwe_module
backend = 'webengine'
diff --git a/tests/helpers/fixtures.py b/tests/helpers/fixtures.py
index 0e9f1bbd3..d825ea7fc 100644
--- a/tests/helpers/fixtures.py
+++ b/tests/helpers/fixtures.py
@@ -212,7 +212,8 @@ 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 = testutils.importorskip_ifnull('qutebrowser.qt.QtWebPage')
+ testutils.qt_module_skip('QtWebKit')
+ from qutebrowser.browser.webkit import webkittab
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit)
@@ -237,8 +238,8 @@ def webengine_tab(web_tab_setup, qtbot, redirect_webengine_data,
tabwidget.current_index = 0
tabwidget.index_of = 0
- webenginetab = testutils.importorskip_ifnull(
- 'qutebrowser.qt.QtWebEngine')
+ testutils.qt_module_skip('QtWebEngine')
+ from qutebrowser.browser.webengine import webenginetab
tab = webenginetab.WebEngineTab(win_id=0, mode_manager=mode_manager,
private=False)
@@ -264,10 +265,10 @@ def webengine_tab(web_tab_setup, qtbot, redirect_webengine_data,
def web_tab(request):
"""A WebKitTab/WebEngineTab."""
if request.param == 'webkit':
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit')
+ testutils.qt_module_skip('QtWebKit')
return request.getfixturevalue('webkit_tab')
elif request.param == 'webengine':
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebWngine')
+ testutils.qt_module_skip('QtWebEngine')
return request.getfixturevalue('webengine_tab')
else:
raise utils.Unreachable
@@ -438,7 +439,7 @@ def qnam(qapp):
@pytest.fixture
def webengineview(qtbot, monkeypatch, web_tab_setup):
"""Get a QWebEngineView if QtWebEngine is available."""
- QtWebEngineWidgets = testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+ QtWebEngineWidgets = testutils.qt_module_skip('QtWebEngineWidgets')
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine)
view = QtWebEngineWidgets.QWebEngineView()
qtbot.add_widget(view)
@@ -449,7 +450,7 @@ def webengineview(qtbot, monkeypatch, web_tab_setup):
@pytest.fixture
def webpage(qnam, monkeypatch):
"""Get a new QWebPage object."""
- QtWebKitWidgets = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKitWidgets')
+ QtWebKitWidgets = testutils.qt_module_skip('QtWebKitWidgets')
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit)
class WebPageStub(QtWebKitWidgets.QWebPage):
@@ -474,7 +475,7 @@ def webpage(qnam, monkeypatch):
@pytest.fixture
def webview(qtbot, webpage):
"""Get a new QWebView object."""
- QtWebKitWidgets = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKitWidgets')
+ QtWebKitWidgets = testutils.qt_module_skip('QtWebKitWidgets')
view = QtWebKitWidgets.QWebView()
qtbot.add_widget(view)
@@ -731,7 +732,7 @@ def webengine_versions(testdata_scheme):
Calling qtwebengine_versions() initializes QtWebEngine, so we depend on
testdata_scheme here, to make sure that happens before.
"""
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+ testutils.qt_module_skip('QtWebEngineWidgets')
return version.qtwebengine_versions()
diff --git a/tests/helpers/testutils.py b/tests/helpers/testutils.py
index d5b9aa60e..e1bf720cf 100644
--- a/tests/helpers/testutils.py
+++ b/tests/helpers/testutils.py
@@ -32,6 +32,7 @@ from typing import Optional, Any
import pytest
+import qutebrowser.qt
from qutebrowser.qt import QtWebEngine, QtGui
from qutebrowser.utils import qtutils, log, utils, version
@@ -311,11 +312,12 @@ def import_userscript(name):
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)
+def qt_module_skip(modname: str, reason: Optional[str] = None) -> Any:
+ """Wraps return a PyQt module if is exists, else pytest.skip()."""
+ result = getattr(qutebrowser.qt, modname)
if result is None:
- raise pytest.Skipped
+ pytest.skip(
+ reason or f"Couldn't import {modname} from qutebrowser.qt",
+ allow_module_level=True,
+ )
return result
diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py
index bee26573a..9bb0a9eb7 100644
--- a/tests/unit/browser/test_history.py
+++ b/tests/unit/browser/test_history.py
@@ -277,7 +277,7 @@ class TestHistoryInterface:
@pytest.fixture
def hist_interface(self, web_history):
# pylint: disable=invalid-name
- QtWebKit = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit')
+ QtWebKit = testutils.qt_module_skip('QtWebKit')
from qutebrowser.browser.webkit import webkithistory
QWebHistoryInterface = QtWebKit.QWebHistoryInterface
# pylint: enable=invalid-name
@@ -311,7 +311,7 @@ class TestInit:
usertypes.Backend.QtWebKit])
def test_init(self, backend, qapp, tmpdir, data_tmpdir, monkeypatch, cleanup_init):
if backend == usertypes.Backend.QtWebKit:
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebKitWidgets')
+ testutils.qt_module_skip('QtWebKitWidgets')
else:
assert backend == usertypes.Backend.QtWebEngine
diff --git a/tests/unit/browser/webengine/test_webengine_cookies.py b/tests/unit/browser/webengine/test_webengine_cookies.py
index 773ca0e24..bce2ffc9f 100644
--- a/tests/unit/browser/webengine/test_webengine_cookies.py
+++ b/tests/unit/browser/webengine/test_webengine_cookies.py
@@ -20,7 +20,7 @@
import pytest
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineCore')
+testutils.qt_module_skip('QtWebEngineCore')
from qutebrowser.browser.webengine import cookies
from qutebrowser.utils import urlmatch
diff --git a/tests/unit/browser/webengine/test_webenginedownloads.py b/tests/unit/browser/webengine/test_webenginedownloads.py
index 206f5368e..e43807093 100644
--- a/tests/unit/browser/webengine/test_webenginedownloads.py
+++ b/tests/unit/browser/webengine/test_webenginedownloads.py
@@ -24,7 +24,7 @@ import dataclasses
import pytest
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+testutils.qt_module_skip('QtWebEngineWidgets')
from qutebrowser.qt import QtWebEngineWidgets
from qutebrowser.utils import urlutils, usertypes, utils
diff --git a/tests/unit/browser/webengine/test_webengineinterceptor.py b/tests/unit/browser/webengine/test_webengineinterceptor.py
index c57ce9590..592f7f69f 100644
--- a/tests/unit/browser/webengine/test_webengineinterceptor.py
+++ b/tests/unit/browser/webengine/test_webengineinterceptor.py
@@ -21,7 +21,7 @@
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+testutils.qt_module_skip('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 d6ba29a34..a365f54df 100644
--- a/tests/unit/browser/webengine/test_webenginesettings.py
+++ b/tests/unit/browser/webengine/test_webenginesettings.py
@@ -22,7 +22,7 @@ import logging
import pytest
from helpers import testutils
-QtWebEngineWidgets = testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+QtWebEngineWidgets = testutils.qt_module_skip('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 c37128f36..5df8be077 100644
--- a/tests/unit/browser/webengine/test_webenginetab.py
+++ b/tests/unit/browser/webengine/test_webenginetab.py
@@ -27,11 +27,11 @@ from qutebrowser.browser import greasemonkey
from qutebrowser.utils import usertypes
from helpers import testutils
-QtWebEngineWidgets = testutils.importorskip_ifnull("qutebrowser.qt.QtWebEngineWidgets")
+QtWebEngineWidgets = testutils.qt_module_skip("QtWebEngineWidgets")
QWebEnginePage = QtWebEngineWidgets.QWebEnginePage
QWebEngineScriptCollection = QtWebEngineWidgets.QWebEngineScriptCollection
QWebEngineScript = QtWebEngineWidgets.QWebEngineScript
-webenginetab = testutils.importorskip_ifnull(
+webenginetab = pytest.importorskip(
"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 529077fb5..4cd0e2df9 100644
--- a/tests/unit/browser/webkit/test_mhtml.py
+++ b/tests/unit/browser/webkit/test_mhtml.py
@@ -27,8 +27,8 @@ import pytest
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit')
-mhtml = testutils.importorskip_ifnull('qutebrowser.browser.webkit.mhtml')
+testutils.qt_module_skip('QtWebKit')
+mhtml = pytest.importorskip('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 c350a198d..db7b81fa9 100644
--- a/tests/unit/browser/webkit/test_tabhistory.py
+++ b/tests/unit/browser/webkit/test_tabhistory.py
@@ -24,7 +24,7 @@ from typing import Any
import pytest
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit')
+testutils.qt_module_skip('QtWebKit')
from qutebrowser.qt import QtWebKit
from qutebrowser.browser.webkit import tabhistory
diff --git a/tests/unit/browser/webkit/test_webkitelem.py b/tests/unit/browser/webkit/test_webkitelem.py
index d8968e2d3..6c34ef18d 100644
--- a/tests/unit/browser/webkit/test_webkitelem.py
+++ b/tests/unit/browser/webkit/test_webkitelem.py
@@ -29,7 +29,7 @@ import dataclasses
import pytest
from helpers import testutils
-QWebElement = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit').QWebElement
+QWebElement = testutils.qt_module_skip('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 7b7c66372..c517834de 100644
--- a/tests/unit/browser/webkit/test_webkitsettings.py
+++ b/tests/unit/browser/webkit/test_webkitsettings.py
@@ -19,7 +19,7 @@
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebKitWidgets')
+testutils.qt_module_skip('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 2b0662b58..7eb882ea2 100644
--- a/tests/unit/browser/webkit/test_webview.py
+++ b/tests/unit/browser/webkit/test_webview.py
@@ -20,7 +20,11 @@
import pytest
from helpers import testutils
-webview = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKit')
+
+
+webkit = testutils.qt_module_skip('QtWebKit')
+if webkit:
+ from qutebrowser.browser.webkit import webview
@pytest.fixture
diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py
index ad360438d..0a96e229c 100644
--- a/tests/unit/completion/test_models.py
+++ b/tests/unit/completion/test_models.py
@@ -1343,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."""
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+ testutils.qt_module_skip('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 83f975f6e..2f6625690 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."""
- testutils.importorskip_ifnull("qutebrowser.qt.QtWebEngine")
+ testutils.qt_module_skip("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 ed512807b..15958ed6f 100644
--- a/tests/unit/config/test_qtargs_locale_workaround.py
+++ b/tests/unit/config/test_qtargs_locale_workaround.py
@@ -27,7 +27,7 @@ from qutebrowser.config import qtargs
from helpers import testutils
-testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+testutils.qt_module_skip('QtWebEngineWidgets')
@pytest.fixture(autouse=True)
diff --git a/tests/unit/config/test_websettings.py b/tests/unit/config/test_websettings.py
index 4a9ff7cb6..b0f68508e 100644
--- a/tests/unit/config/test_websettings.py
+++ b/tests/unit/config/test_websettings.py
@@ -22,7 +22,6 @@ 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,8 +79,8 @@ def test_parse_user_agent(user_agent, os_info, webkit_version,
assert parsed.qt_key == qt_key
-def test_user_agent(monkeypatch, config_stub, qapp):
- webenginesettings = testutils.importorskip_ifnull(
+def no_test_user_agent(monkeypatch, config_stub, qapp):
+ webenginesettings = pytest.importorskip(
"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 00b192ae4..bbda1c5db 100644
--- a/tests/unit/javascript/position_caret/test_position_caret.py
+++ b/tests/unit/javascript/position_caret/test_position_caret.py
@@ -23,8 +23,8 @@ import pytest
from helpers import testutils
-QWebSettings = testutils.importorskip_ifnull("qutebrowser.qt.QtWebKit").QWebSettings
-QWebPage = testutils.importorskip_ifnull("qutebrowser.qt.QtWebKitWidgets").QWebPage
+QWebSettings = testutils.qt_module_skip("QtWebKit").QWebSettings
+QWebPage = testutils.qt_module_skip("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 1043a0aad..219b9c8c2 100644
--- a/tests/unit/javascript/stylesheet/test_stylesheet_js.py
+++ b/tests/unit/javascript/stylesheet/test_stylesheet_js.py
@@ -25,7 +25,7 @@ import pytest
from qutebrowser.utils import javascript
from helpers import testutils
-QtWebEngineWidgets = testutils.importorskip_ifnull("qutebrowser.qt.QtWebEngineWidgets")
+QtWebEngineWidgets = testutils.qt_module_skip("QtWebEngineWidgets")
QWebEngineProfile = QtWebEngineWidgets.QWebEngineProfile
diff --git a/tests/unit/misc/test_elf.py b/tests/unit/misc/test_elf.py
index 2803c9ef4..a2c1d1025 100644
--- a/tests/unit/misc/test_elf.py
+++ b/tests/unit/misc/test_elf.py
@@ -58,7 +58,7 @@ def test_result(qapp, caplog):
If that happens, please report a bug about it!
"""
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineCore')
+ testutils.qt_module_skip('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 7f83a713b..66f36683f 100644
--- a/tests/unit/misc/test_sessions.py
+++ b/tests/unit/misc/test_sessions.py
@@ -25,7 +25,7 @@ import pytest
import yaml
from helpers import testutils
-QWebView = testutils.importorskip_ifnull('qutebrowser.qt.QtWebKitWidgets').QWebView
+QWebView = testutils.qt_module_skip('QtWebKitWidgets').QWebView
from qutebrowser.misc import sessions
from qutebrowser.misc.sessions import TabHistoryItem as Item
diff --git a/tests/unit/utils/test_debug.py b/tests/unit/utils/test_debug.py
index 4d4381f07..fa31f2c53 100644
--- a/tests/unit/utils/test_debug.py
+++ b/tests/unit/utils/test_debug.py
@@ -186,7 +186,7 @@ class TestQFlagsKey:
No idea what's happening here exactly...
"""
- qwebpage = testutils.importorskip_ifnull("qutebrowser.qt.QtWebKitWidgets").QWebPage
+ qwebpage = testutils.qt_module_skip("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 4a40659b5..c063efffe 100644
--- a/tests/unit/utils/test_version.py
+++ b/tests/unit/utils/test_version.py
@@ -33,7 +33,7 @@ import dataclasses
import pytest
import hypothesis
import hypothesis.strategies
-from qutebrowser.qt import QtWebEngine, QtCore
+from qutebrowser.qt import QtWebEngine, QtCore, pyqt
import qutebrowser
from qutebrowser.config import config, websettings
@@ -1060,7 +1060,7 @@ class TestChromiumVersion:
@pytest.fixture(autouse=True)
def clear_parsed_ua(self, monkeypatch):
- testutils.importorskip_ifnull('qutebrowser.qt.QtWebEngineWidgets')
+ testutils.qt_module_skip('QtWebEngineWidgets')
if webenginesettings is not None:
# Not available with QtWebKit
monkeypatch.setattr(webenginesettings, 'parsed_user_agent', None)
@@ -1342,7 +1342,7 @@ class TestOpenGLInfo:
def test_func(self, qapp):
"""Simply call version.opengl_info() and see if it doesn't crash."""
- testutils.importorskip_ifnull("qutebrowser.qt.QtOpenGL")
+ pytest.importorskip(f"{pyqt.__name__}.QtOpenGL")
version.opengl_info()
def test_func_fake(self, qapp, monkeypatch):