@@ -169,7 +169,7 @@ def test_export(
169
169
170
170
171
171
# TODO: check error if wrong task name
172
- # TODO: check errro when task is up to date
172
+ # TODO: check error when task is up to date
173
173
# TODO: check error if dependencies from submitted task are outdated
174
174
@pytest .mark .parametrize (
175
175
"mode, args" ,
@@ -662,3 +662,73 @@ def test_lazy_load(mock_aws_batch_lazy_load, monkeypatch):
662
662
path_to_config = "soopervisor.yaml" , env_name = "train" , lazy_import = True
663
663
)
664
664
exporter .export (mode = "incremental" , lazy_import = True )
665
+
666
+
667
+ def test_export_with_skip_docker_uses_configured_repository (
668
+ mock_batch ,
669
+ monkeypatch ,
670
+ tmp_sample_project_multiple_requirement ,
671
+ monkeypatch_docker_client ,
672
+ skip_repo_validation ,
673
+ boto3_mock ,
674
+ monkeypatch_docker_commons ,
675
+ load_tasks_mock ,
676
+ ):
677
+ monkeypatch .setattr (batch , "uuid4" , lambda : "uuid4" )
678
+ monkeypatch .setattr (batch .boto3 , "client" , lambda name , region_name : boto3_mock )
679
+ monkeypatch .setattr (commons , "load_tasks" , load_tasks_mock )
680
+
681
+ repository = "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repository/model"
682
+
683
+ exporter = batch .AWSBatchExporter .new ("soopervisor.yaml" , "some-env" )
684
+ exporter ._cfg .repository = repository
685
+ exporter .add ()
686
+
687
+ # mock commander
688
+ commander_mock = MagicMock ()
689
+ monkeypatch .setattr (
690
+ batch , "Commander" , lambda workspace , templates_path : commander_mock
691
+ )
692
+
693
+ exporter .export (mode = "incremental" , skip_docker = True )
694
+
695
+ jobs = mock_batch .list_jobs (jobQueue = "your-job-queue" )["jobSummaryList" ]
696
+
697
+ # get jobs information
698
+ jobs_info = mock_batch .describe_jobs (jobs = [job ["jobId" ] for job in jobs ])["jobs" ]
699
+
700
+ job_defs = mock_batch .describe_job_definitions (
701
+ jobDefinitions = [job ["jobDefinition" ] for job in jobs_info ]
702
+ )["jobDefinitions" ]
703
+
704
+ # check all tasks submitted
705
+ assert {j ["jobName" ] for j in jobs_info } == {"raw" , "clean-1" , "plot" , "clean-2" }
706
+
707
+ # check submitted to the right queue
708
+ assert all (["your-job-queue" in j ["jobQueue" ] for j in jobs_info ])
709
+
710
+ # check created a job definition with the right name
711
+ job_definitions = {j ["jobName" ]: j ["jobDefinition" ] for j in jobs_info }
712
+ assert job_definitions == {
713
+ "raw" : "arn:aws:batch:us-east-1:123456789012:job-definition/"
714
+ "multiple_requirements_project-uuid4:1" ,
715
+ "clean-1" : "arn:aws:batch:us-east-1:123456789012:job-definition/"
716
+ "multiple_requirements_project-uuid4:1" ,
717
+ "clean-2" : "arn:aws:batch:us-east-1:123456789012:job-definition/"
718
+ "multiple_requirements_project-uuid4:1" ,
719
+ "plot" : "arn:aws:batch:us-east-1:123456789012:job-definition/"
720
+ "multiple_requirements_project-uuid4:1" ,
721
+ }
722
+
723
+ job_images = {
724
+ j ["jobDefinitionArn" ]: j ["containerProperties" ]["image" ] for j in job_defs
725
+ }
726
+
727
+ expected_image = f"{ repository } :latest"
728
+
729
+ expected = {
730
+ "arn:aws:batch:us-east-1:123456789012:job-definition/"
731
+ "multiple_requirements_project-uuid4:1" : expected_image ,
732
+ }
733
+
734
+ assert job_images == expected
0 commit comments