diff options
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): |