diff options
author | Florian Bruhin <me@the-compiler.org> | 2022-08-29 09:31:24 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2022-08-29 09:37:49 +0200 |
commit | 038361d8aa52bb8d3a9e79d03161e6ae164b2291 (patch) | |
tree | e855133d5e7961eaaa7d3410d7a344d0e7b057bf | |
parent | dd1cc314d0a0e6531a61cc7ac77ebd980ce00fbc (diff) | |
download | qutebrowser-038361d8aa52bb8d3a9e79d03161e6ae164b2291.tar.gz qutebrowser-038361d8aa52bb8d3a9e79d03161e6ae164b2291.zip |
Improve error message on unresolved executables
No more confusing 'No program defined'
-rw-r--r-- | qutebrowser/misc/guiprocess.py | 13 | ||||
-rw-r--r-- | tests/unit/misc/test_guiprocess.py | 17 |
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 |