diff options
author | $MYNAME <$MYGITEMAIL> | 2021-03-03 14:03:03 +0100 |
---|---|---|
committer | $MYNAME <$MYGITEMAIL> | 2021-03-03 14:03:03 +0100 |
commit | 82ba01647b9000b5422f6f77e874acdf4f5a511d (patch) | |
tree | 9e86d557fd1fb72660242a4f0f29d7ad0cfcaac2 | |
parent | 18340ada86cc752cc8f90b1c44ff199993876885 (diff) | |
download | qutebrowser-82ba01647b9000b5422f6f77e874acdf4f5a511d.tar.gz qutebrowser-82ba01647b9000b5422f6f77e874acdf4f5a511d.zip |
Better handling of filepicker commands, updated test
-rw-r--r-- | qutebrowser/browser/shared.py | 2 | ||||
-rwxr-xr-x | scripts/dev/run_vulture.py | 1 | ||||
-rw-r--r-- | tests/end2end/features/test_editor_bdd.py | 20 |
3 files changed, 15 insertions, 8 deletions
diff --git a/qutebrowser/browser/shared.py b/qutebrowser/browser/shared.py index 643273f20..19048f88e 100644 --- a/qutebrowser/browser/shared.py +++ b/qutebrowser/browser/shared.py @@ -359,7 +359,7 @@ def choose_file(multiple: bool) -> List[str]: command = config.val.fileselect.multiple_files.command else: command = config.val.fileselect.single_file.command - use_tmp_file = '{}' in command + use_tmp_file = any('{}' in arg for arg in command[1:]) if use_tmp_file: handle = tempfile.NamedTemporaryFile( prefix='qutebrowser-fileselect-', diff --git a/scripts/dev/run_vulture.py b/scripts/dev/run_vulture.py index fab46b115..3728e9ecb 100755 --- a/scripts/dev/run_vulture.py +++ b/scripts/dev/run_vulture.py @@ -80,6 +80,7 @@ def whitelist_generator(): # noqa: C901 yield 'qutebrowser.utils.log.QtWarningFilter.filter' yield 'qutebrowser.browser.pdfjs.is_available' yield 'qutebrowser.misc.guiprocess.spawn_output' + yield 'qutebrowser.misc.guiprocess.GUIProcess.final_stderr' yield 'qutebrowser.utils.usertypes.ExitStatus.reserved' yield 'QEvent.posted' yield 'log_stack' # from message.py diff --git a/tests/end2end/features/test_editor_bdd.py b/tests/end2end/features/test_editor_bdd.py index 8ec8cf98e..40f77a0f7 100644 --- a/tests/end2end/features/test_editor_bdd.py +++ b/tests/end2end/features/test_editor_bdd.py @@ -187,18 +187,24 @@ def set_up_fileselector(quteproc, py_proc, kind, files, output_type): cmd, args = py_proc(r""" import os import sys - if '--' in sys.argv: - tmp_file = sys.argv[-1] + tmp_file = None + for i, arg in enumerate(sys.argv): + if arg.startswith('--file='): + tmp_file = arg[len('--file='):] + sys.argv.pop(i) + break + selected_files = sys.argv[1:] + if tmp_file is None: + for selected_file in selected_files: + print(os.path.abspath(selected_file)) + else: with open(tmp_file, 'w') as f: - for selected_file in sys.argv[1:-2]: + for selected_file in selected_files: f.write(os.path.abspath(selected_file) + '\n') - else: - for selected_file in sys.argv[1:]: - print(os.path.abspath(selected_file)) """) args += files.split(' ') if output_type == "a temporary file": - args += ['--', '{}'] + args += ['--file={}'] fileselect_cmd = json.dumps([cmd, *args]) quteproc.set_setting('fileselect.handler', 'external') quteproc.set_setting(f'fileselect.{kind}.command', fileselect_cmd) |