@@ -700,6 +700,85 @@ def test_publish_tags(self,
700700 self .md .object_name ,
701701 tags = tags )
702702
703+ @patch ('cloudimg.aws.AWSService.upload_to_container' )
704+ @patch ('cloudimg.aws.AWSService.import_snapshot' )
705+ @patch ('cloudimg.aws.AWSService.register_image' )
706+ @patch ('cloudimg.aws.AWSService.share_image' )
707+ @patch ('cloudimg.aws.AWSService.get_image_by_tags' )
708+ @patch ('cloudimg.aws.AWSService.get_image_by_name' )
709+ @patch ('cloudimg.aws.AWSService.get_snapshot_by_name' )
710+ @patch ('cloudimg.aws.AWSService.get_object_by_name' )
711+ def test_publish_snapshot_tags (self ,
712+ get_object_by_name ,
713+ get_snapshot_by_name ,
714+ get_image_by_name ,
715+ get_image_by_tags ,
716+ share_image ,
717+ register_image ,
718+ import_snapshot ,
719+ upload_to_container ):
720+ get_image_by_name .return_value = None
721+ get_image_by_tags .return_value = None
722+ get_snapshot_by_name .return_value = None
723+ get_object_by_name .return_value = None
724+ self .md .tags = None
725+ self .md .snapshot_tags = {"snapshot" : "tag" }
726+ published = self .svc .publish (self .md )
727+
728+ share_image .assert_called_once_with (published ,
729+ accounts = [],
730+ groups = [])
731+ self .assertEqual (register_image .call_count , 1 )
732+ import_snapshot .assert_called_once_with (
733+ ANY ,
734+ self .md .snapshot_name ,
735+ tags = {"snapshot" : "tag" },
736+ )
737+ upload_to_container .assert_called_once_with (self .md .image_path ,
738+ self .md .container ,
739+ self .md .object_name )
740+
741+ @patch ('cloudimg.aws.AWSService.upload_to_container' )
742+ @patch ('cloudimg.aws.AWSService.import_snapshot' )
743+ @patch ('cloudimg.aws.AWSService.register_image' )
744+ @patch ('cloudimg.aws.AWSService.share_image' )
745+ @patch ('cloudimg.aws.AWSService.get_image_by_tags' )
746+ @patch ('cloudimg.aws.AWSService.get_image_by_name' )
747+ @patch ('cloudimg.aws.AWSService.get_snapshot_by_name' )
748+ @patch ('cloudimg.aws.AWSService.get_object_by_name' )
749+ def test_publish_merged_snapshot_tags (
750+ self ,
751+ get_object_by_name ,
752+ get_snapshot_by_name ,
753+ get_image_by_name ,
754+ get_image_by_tags ,
755+ share_image ,
756+ register_image ,
757+ import_snapshot ,
758+ upload_to_container ,
759+ ):
760+ get_image_by_name .return_value = None
761+ get_image_by_tags .return_value = None
762+ get_snapshot_by_name .return_value = None
763+ get_object_by_name .return_value = None
764+ self .md .tags = {"foo" : "bar" }
765+ self .md .snapshot_tags = {"snapshot" : "tag" }
766+ published = self .svc .publish (self .md )
767+
768+ share_image .assert_called_once_with (published ,
769+ accounts = [],
770+ groups = [])
771+ self .assertEqual (register_image .call_count , 1 )
772+ import_snapshot .assert_called_once_with (
773+ ANY ,
774+ self .md .snapshot_name ,
775+ tags = {"foo" : "bar" , "snapshot" : "tag" },
776+ )
777+ upload_to_container .assert_called_once_with (self .md .image_path ,
778+ self .md .container ,
779+ self .md .object_name ,
780+ tags = {"foo" : "bar" })
781+
703782 @patch ('cloudimg.aws.AWSService.tag_image' )
704783 def test_register_image_no_tags (self , tag_image ):
705784 self .mock_register_image .return_value = "fakeimg"
@@ -741,6 +820,33 @@ def test_register_image_tags(self, tag_image):
741820 tag_image .assert_called_once_with ("fakeimg" , self .md .tags )
742821 self .assertEqual (res , "fakeimg" )
743822
823+ @patch ('cloudimg.aws.AWSService.tag_image' )
824+ def test_register_image_ami_tags (self , tag_image ):
825+ self .md .tags = None
826+ self .md .ami_tags = {"ami" : "tag" }
827+ self .mock_register_image .return_value = "fakeimg"
828+
829+ res = self .svc .register_image (MagicMock (), self .md )
830+
831+ self .mock_register_image .assert_called_once ()
832+ tag_image .assert_called_once_with ("fakeimg" , {"ami" : "tag" })
833+ self .assertEqual (res , "fakeimg" )
834+
835+ @patch ('cloudimg.aws.AWSService.tag_image' )
836+ def test_register_image_merged_ami_tags (self , tag_image ):
837+ self .md .tags = {"tag" : "tag" }
838+ self .md .ami_tags = {"ami" : "tag" }
839+ self .mock_register_image .return_value = "fakeimg"
840+
841+ res = self .svc .register_image (MagicMock (), self .md )
842+
843+ self .mock_register_image .assert_called_once ()
844+ tag_image .assert_called_once_with (
845+ "fakeimg" ,
846+ {"tag" : "tag" , "ami" : "tag" },
847+ )
848+ self .assertEqual (res , "fakeimg" )
849+
744850 @patch ('cloudimg.aws.AWSService.tag_image' )
745851 def test_register_image_boot_mode (self , tag_image ):
746852 self .mock_register_image .return_value = "fakeimg"
0 commit comments