diff options
Diffstat (limited to 'tests/end2end/features/conftest.py')
-rw-r--r-- | tests/end2end/features/conftest.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/end2end/features/conftest.py b/tests/end2end/features/conftest.py index da42ac6e1..2bb3d5079 100644 --- a/tests/end2end/features/conftest.py +++ b/tests/end2end/features/conftest.py @@ -712,3 +712,35 @@ def check_option_per_domain(quteproc, option, value, pattern, server): pattern = pattern.replace('(port)', str(server.port)) actual_value = quteproc.get_setting(option, pattern=pattern) assert actual_value == value + + +@bdd.when(bdd.parsers.parse('I setup a fake {kind} fileselector ' + 'selecting "{files}" and writes to {output_type}')) +def set_up_fileselector(quteproc, py_proc, tmpdir, kind, files, output_type): + """Set up fileselect.xxx.command to select the file(s).""" + cmd, args = py_proc(r""" + import os + import sys + 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 selected_files: + f.write(os.path.abspath(selected_file) + '\n') + """) + files = files.replace('(tmpdir)', str(tmpdir)) + files = files.replace('(dirsep)', os.sep) + args += files.split(' ') + if output_type == "a temporary file": + args += ['--file={}'] + fileselect_cmd = json.dumps([cmd, *args]) + quteproc.set_setting('fileselect.handler', 'external') + quteproc.set_setting(f'fileselect.{kind}.command', fileselect_cmd) |