2929
3030@patch ("xcengine.core.ScriptCreator.__init__" )
3131@pytest .mark .parametrize ("tag" , [None , "bar" ])
32- @pytest .mark .parametrize ("env_file_name" , ["environment.yml" , "foo.yaml" , None ])
32+ @pytest .mark .parametrize (
33+ "env_file_name" , ["environment.yml" , "foo.yaml" , None ]
34+ )
3335@pytest .mark .parametrize ("use_env_file_param" , [False , True ])
3436def test_image_builder_init (
3537 init_mock ,
@@ -56,7 +58,11 @@ def test_image_builder_init(
5658 )
5759 assert ib .notebook == nb_path
5860 assert ib .build_dir == build_path
59- expected_env = environment_path if (use_env_file_param or env_file_name == "environment.yml" ) else None
61+ expected_env = (
62+ environment_path
63+ if (use_env_file_param or env_file_name == "environment.yml" )
64+ else None
65+ )
6066 assert ib .environment == expected_env
6167 if tag is None :
6268 assert abs (
@@ -123,6 +129,28 @@ def test_runner_run_keep(keep: bool):
123129 container .remove .assert_called_once_with (force = True )
124130
125131
132+ def test_runner_extra_args ():
133+ runner = xcengine .core .ContainerRunner (
134+ image := Mock (docker .models .images .Image ),
135+ None ,
136+ client := Mock (DockerClient ),
137+ )
138+ image .tags = []
139+ client .containers .run .return_value = (container := MagicMock (Container ))
140+ container .status = "exited"
141+ script_args = ["--foo" , "--bar" , "42" , "--baz" , "somestring" ]
142+ runner .run (
143+ run_batch = False ,
144+ host_port = None ,
145+ from_saved = False ,
146+ keep = False ,
147+ script_args = script_args ,
148+ )
149+ run_args = client .containers .run .call_args
150+ command = run_args [1 ]["command" ]
151+ assert command == ["python" , "execute.py" ] + script_args
152+
153+
126154def test_runner_sigint ():
127155 runner = xcengine .core .ContainerRunner (
128156 image := Mock (docker .models .images .Image ),
0 commit comments