diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-06-14 19:07:50 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-06-14 19:09:58 +0200 |
commit | d6af5394542a96818ef8389227c7e4020f1c5f9f (patch) | |
tree | 5e7466e0579b796113fccbef20adaf7d92243767 | |
parent | 69c21a57512ab4913319341f5f0139aac88515db (diff) | |
download | qutebrowser-d6af5394542a96818ef8389227c7e4020f1c5f9f.tar.gz qutebrowser-d6af5394542a96818ef8389227c7e4020f1c5f9f.zip |
qt: Use warning instead if Qt was already imported
-rw-r--r-- | qutebrowser/qt/machinery.py | 6 | ||||
-rw-r--r-- | tests/unit/test_qt_machinery.py | 2 |
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) |