summaryrefslogtreecommitdiff
path: root/tests/end2end/features/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/end2end/features/conftest.py')
-rw-r--r--tests/end2end/features/conftest.py32
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)