@@ -153,6 +153,36 @@ def test_run_command_subdir_source(self):
153153 self .assertEqual (result .exit_code , 0 )
154154 self .assertTrue (Path ('out/src/subdir/script.py' ).exists ())
155155
156+ def test_run_command_docker_subdir_source_build_paths (self ):
157+ with self .runner .isolated_filesystem (temp_dir = self .temp_dir ):
158+ result = self .runner .invoke (cli , ['init' , 'test-project' ])
159+ self .assertEqual (result .exit_code , 0 )
160+
161+ subdir = Path ('test-project/src/subdir' )
162+ subdir .mkdir (parents = True , exist_ok = True )
163+ shutil .move ('test-project/src/script.py' , subdir / 'script.py' )
164+
165+ workflow_path = Path ('test-project/workflow.graphml' )
166+ content = workflow_path .read_text ()
167+ content = content .replace ('N1:script.py' , 'N1:subdir/script.py' )
168+ workflow_path .write_text (content )
169+
170+ result = self .runner .invoke (cli , [
171+ 'run' ,
172+ 'test-project/workflow.graphml' ,
173+ '--source' , 'test-project/src' ,
174+ '--output' , 'out' ,
175+ '--type' , 'docker'
176+ ])
177+ self .assertEqual (result .exit_code , 0 )
178+
179+ build_script = Path ('out/build' ).read_text ()
180+ self .assertIn ('mkdir docker-subdir__script' , build_script )
181+ self .assertIn ('cp ../src/Dockerfile.subdir/script Dockerfile' , build_script )
182+ self .assertIn ('cp ../src/subdir/script.py .' , build_script )
183+ self .assertIn ('cp ../src/subdir/script.iport concore.iport' , build_script )
184+ self .assertIn ('cd ..' , build_script )
185+
156186 def test_run_command_shared_source_specialization_merges_edge_params (self ):
157187 with self .runner .isolated_filesystem (temp_dir = self .temp_dir ):
158188 Path ('src' ).mkdir ()
0 commit comments