summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-13 20:13:06 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-13 20:13:06 +0200
commitb9253c90fe27a9aaa2483ccf7f37d6f032cfed5f (patch)
tree8d2b778511e898d24271bd0fd33fd176c6969aa2
parentca4cd3a24ff7bdb2e2fa18e0905e90c673222185 (diff)
downloadqutebrowser-b9253c90fe27a9aaa2483ccf7f37d6f032cfed5f.tar.gz
qutebrowser-b9253c90fe27a9aaa2483ccf7f37d6f032cfed5f.zip
qt: Improve SelectionInfo.__str__()
-rw-r--r--qutebrowser/qt/machinery.py15
-rw-r--r--tests/unit/test_qt_machinery.py10
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