@@ -435,3 +435,49 @@ def test_display_python_version_should_output_python_versions(run_task_mod, caps
435435
436436 output = capsys .readouterr ().out
437437 assert ("Python version: 3." in output ) or ("Python version: 2." in output ) is True
438+
439+
440+ @pytest .fixture
441+ def run_main (tmp_path , capsys , mocker , mock_stdin , run_task_mod ):
442+ base_args = [
443+ f"--task-cwd={ str (tmp_path )} " ,
444+ ]
445+
446+ base_command_args = [
447+ "bash" ,
448+ "-c" ,
449+ "echo hello" ,
450+ ]
451+
452+ m = mocker .patch .object (run_task_mod .os , "getcwd" )
453+ m .return_value = "/builds/worker"
454+
455+ def inner (extra_args = None , env = None ):
456+ extra_args = extra_args or []
457+ env = env or {}
458+
459+ mocker .patch .object (run_task_mod .os , "environ" , env )
460+
461+ args = base_args + extra_args
462+ args .append ("--" )
463+ args .extend (base_command_args )
464+
465+ result = run_task_mod .main (args )
466+ out , err = capsys .readouterr ()
467+ return result , out , err , env
468+
469+ return inner
470+
471+
472+ def test_main_interpolate_environment (run_main ):
473+ result , out , err , env = run_main (
474+ env = {"MOZ_FETCHES_DIR" : "file" , "UPLOAD_DIR" : "file" , "FOO" : "file" }
475+ )
476+ assert result == 0
477+
478+ assert env == {
479+ "MOZ_FETCHES_DIR" : "/builds/worker/file" ,
480+ "UPLOAD_DIR" : "/builds/worker/file" ,
481+ "FOO" : "file" ,
482+ "TASK_WORKDIR" : "/builds/worker" ,
483+ }
0 commit comments