diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-06-13 20:13:06 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-06-13 20:13:06 +0200 |
commit | b9253c90fe27a9aaa2483ccf7f37d6f032cfed5f (patch) | |
tree | 8d2b778511e898d24271bd0fd33fd176c6969aa2 | |
parent | ca4cd3a24ff7bdb2e2fa18e0905e90c673222185 (diff) | |
download | qutebrowser-b9253c90fe27a9aaa2483ccf7f37d6f032cfed5f.tar.gz qutebrowser-b9253c90fe27a9aaa2483ccf7f37d6f032cfed5f.zip |
qt: Improve SelectionInfo.__str__()
-rw-r--r-- | qutebrowser/qt/machinery.py | 15 | ||||
-rw-r--r-- | tests/unit/test_qt_machinery.py | 10 |
2 files changed, 14 insertions, 11 deletions
diff --git a/qutebrowser/qt/machinery.py b/qutebrowser/qt/machinery.py index 2b8de8f64..522866360 100644 --- a/qutebrowser/qt/machinery.py +++ b/qutebrowser/qt/machinery.py @@ -105,13 +105,14 @@ class SelectionInfo: # No autoselect -> shorter output return f"Qt wrapper: {self.wrapper} (via {self.reason.value})" - lines = ["Qt wrapper info:"] - if self.pyqt5 is not None: - lines.append(f"PyQt5: {self.pyqt5}") - if self.pyqt6 is not None: - lines.append(f"PyQt6: {self.pyqt6}") - - lines.append(f"selected: {self.wrapper} (via {self.reason.value})") + pyqt5 = self.pyqt5 or "not imported" + pyqt6 = self.pyqt6 or "not imported" + lines = [ + "Qt wrapper info:", + f" PyQt5: {pyqt5}", + f" PyQt6: {pyqt6}", + f" -> selected: {self.wrapper} (via {self.reason.value})" + ] return "\n".join(lines) def to_html(self) -> str: diff --git a/tests/unit/test_qt_machinery.py b/tests/unit/test_qt_machinery.py index 386081f5d..596d21383 100644 --- a/tests/unit/test_qt_machinery.py +++ b/tests/unit/test_qt_machinery.py @@ -20,6 +20,7 @@ """Test qutebrowser.qt.machinery.""" import sys +import html import argparse import typing from typing import Any, Optional, Dict, Union @@ -116,16 +117,17 @@ def test_selectioninfo_use_wrapper(): ), ( "Qt wrapper info:\n" - "PyQt5: ImportError: Python imploded\n" - "PyQt6: success\n" - "selected: PyQt6 (via autoselect)" + " PyQt5: ImportError: Python imploded\n" + " PyQt6: success\n" + " -> selected: PyQt6 (via autoselect)" ), ), ], ) def test_selectioninfo_str(info: machinery.SelectionInfo, expected: str): assert str(info) == expected - assert info.to_html() == expected.replace("\n", "<br>") + # The test is somewhat duplicating the logic here, but it's a good sanity check. + assert info.to_html() == html.escape(expected).replace("\n", "<br>") @pytest.fixture |