summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-14 19:07:50 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-14 19:09:58 +0200
commitd6af5394542a96818ef8389227c7e4020f1c5f9f (patch)
tree5e7466e0579b796113fccbef20adaf7d92243767
parent69c21a57512ab4913319341f5f0139aac88515db (diff)
downloadqutebrowser-d6af5394542a96818ef8389227c7e4020f1c5f9f.tar.gz
qutebrowser-d6af5394542a96818ef8389227c7e4020f1c5f9f.zip
qt: Use warning instead if Qt was already imported
-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)