summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-08-29 09:31:24 +0200
committerFlorian Bruhin <me@the-compiler.org>2022-08-29 09:37:49 +0200
commit038361d8aa52bb8d3a9e79d03161e6ae164b2291 (patch)
treee855133d5e7961eaaa7d3410d7a344d0e7b057bf
parentdd1cc314d0a0e6531a61cc7ac77ebd980ce00fbc (diff)
downloadqutebrowser-038361d8aa52bb8d3a9e79d03161e6ae164b2291.tar.gz
qutebrowser-038361d8aa52bb8d3a9e79d03161e6ae164b2291.zip
Improve error message on unresolved executables
No more confusing 'No program defined'
-rw-r--r--qutebrowser/misc/guiprocess.py13
-rw-r--r--tests/unit/misc/test_guiprocess.py17
2 files changed, 16 insertions, 14 deletions
diff --git a/qutebrowser/misc/guiprocess.py b/qutebrowser/misc/guiprocess.py
index e14169f93..772417023 100644
--- a/qutebrowser/misc/guiprocess.py
+++ b/qutebrowser/misc/guiprocess.py
@@ -266,18 +266,21 @@ class GUIProcess(QObject):
QProcess.WriteError: f"Write error for {what}",
QProcess.ReadError: f"Read error for {what}",
}
- error_string = self._proc.errorString()
- msg = ': '.join([error_descriptions[error], error_string])
# We can't get some kind of error code from Qt...
# https://bugreports.qt.io/browse/QTBUG-44769
# but we pre-resolve the executable in Python, which also checks if it's
# runnable.
- if self.resolved_cmd is None: # pragma: no branch
- msg += f'\nHint: Make sure {self.cmd!r} exists and is executable'
+ if self.resolved_cmd is None:
+ # No point in showing the "No program defined" we got due to
+ # passing None into Qt.
+ error_string = f"{self.cmd!r} doesn't exist or isn't executable"
if version.is_flatpak():
- msg += ' inside the Flatpak container'
+ error_string += " inside the Flatpak container"
+ else: # pragma: no cover
+ error_string = self._proc.errorString()
+ msg = ': '.join([error_descriptions[error], error_string])
message.error(msg)
def _elide_output(self, output: str) -> str:
diff --git a/tests/unit/misc/test_guiprocess.py b/tests/unit/misc/test_guiprocess.py
index aaff5154e..fa90391a8 100644
--- a/tests/unit/misc/test_guiprocess.py
+++ b/tests/unit/misc/test_guiprocess.py
@@ -403,16 +403,15 @@ def test_failing_to_start(qtbot, proc, caplog, message_mock, monkeypatch, is_fla
with qtbot.wait_signal(proc.error, timeout=5000):
proc.start('this_does_not_exist_either', [])
+ expected_msg = (
+ "Testprocess 'this_does_not_exist_either' failed to start:"
+ " 'this_does_not_exist_either' doesn't exist or isn't executable"
+ )
+ if is_flatpak:
+ expected_msg += " inside the Flatpak container"
+
msg = message_mock.getmsg(usertypes.MessageLevel.error)
- assert msg.text.startswith(
- "Testprocess 'this_does_not_exist_either' failed to start:")
-
- if not utils.is_windows:
- expected_msg = (
- "Hint: Make sure 'this_does_not_exist_either' exists and is executable")
- if is_flatpak:
- expected_msg += ' inside the Flatpak container'
- assert msg.text.endswith(expected_msg)
+ assert msg.text == expected_msg
assert not proc.outcome.running
assert proc.outcome.status is None