summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/qt/machinery.py6
-rw-r--r--tests/unit/test_qt_machinery.py2
2 files changed, 5 insertions, 3 deletions
diff --git a/qutebrowser/qt/machinery.py b/qutebrowser/qt/machinery.py
index e0a5e4cdd..15ff72b17 100644
--- a/qutebrowser/qt/machinery.py
+++ b/qutebrowser/qt/machinery.py
@@ -14,6 +14,7 @@ import sys
import enum
import html
import argparse
+import warnings
import importlib
import dataclasses
from typing import Optional, Dict
@@ -152,10 +153,11 @@ def _select_wrapper(args: Optional[argparse.Namespace]) -> SelectionInfo:
- Otherwise, if the QUTE_QT_WRAPPER environment variable is set, use that.
- Otherwise, use PyQt5 (FIXME:qt6 autoselect).
"""
+ # If any Qt wrapper has been imported before this, something strange might
+ # be happening.
for name in WRAPPERS:
- # If any Qt wrapper has been imported before this, all hope is lost.
if name in sys.modules:
- raise Error(f"{name} already imported")
+ warnings.warn(f"{name} already imported", stacklevel=1)
if args is not None and args.qt_wrapper is not None:
assert args.qt_wrapper in WRAPPERS, args.qt_wrapper # ensured by argparse
diff --git a/tests/unit/test_qt_machinery.py b/tests/unit/test_qt_machinery.py
index d4e6a4736..53a715262 100644
--- a/tests/unit/test_qt_machinery.py
+++ b/tests/unit/test_qt_machinery.py
@@ -335,7 +335,7 @@ def test_select_wrapper(
def test_select_wrapper_after_qt_import(monkeypatch: pytest.MonkeyPatch):
monkeypatch.setitem(sys.modules, "PyQt6", None)
- with pytest.raises(machinery.Error, match="PyQt6 already imported"):
+ with pytest.warns(UserWarning, match="PyQt6 already imported"):
machinery._select_wrapper(args=None)