@@ -771,8 +771,62 @@ def test_rewrite_rotate_encryption_key(self):
771771 # Not adding 'dest' to 'self.case_blobs_to_delete': it is the
772772 # same object as 'source'.
773773
774- self .assertEqual (token , None )
774+ self .assertIsNone (token )
775775 self .assertEqual (rewritten , len (source_data ))
776776 self .assertEqual (total , len (source_data ))
777777
778778 self .assertEqual (dest .download_as_string (), source_data )
779+
780+ def test_rewrite_add_key_with_user_project (self ):
781+ file_data = self .FILES ['simple' ]
782+ new_bucket_name = 'rewrite-key-up' + unique_resource_id ('-' )
783+ created = Config .CLIENT .create_bucket (
784+ new_bucket_name , requester_pays = True )
785+ try :
786+ with_user_project = Config .CLIENT .bucket (
787+ new_bucket_name , user_project = USER_PROJECT )
788+
789+ source = with_user_project .blob ('source' )
790+ source .upload_from_filename (file_data ['path' ])
791+ source_data = source .download_as_string ()
792+
793+ KEY = os .urandom (32 )
794+ dest = with_user_project .blob ('dest' , encryption_key = KEY )
795+ token , rewritten , total = dest .rewrite (source )
796+
797+ self .assertEqual (token , None )
798+ self .assertEqual (rewritten , len (source_data ))
799+ self .assertEqual (total , len (source_data ))
800+
801+ self .assertEqual (source .download_as_string (),
802+ dest .download_as_string ())
803+ finally :
804+ retry_429 (created .delete )(force = True )
805+
806+ def test_rewrite_rotate_with_user_project (self ):
807+ BLOB_NAME = 'rotating-keys'
808+ file_data = self .FILES ['simple' ]
809+ new_bucket_name = 'rewrite-rotate-up' + unique_resource_id ('-' )
810+ created = Config .CLIENT .create_bucket (
811+ new_bucket_name , requester_pays = True )
812+ try :
813+ with_user_project = Config .CLIENT .bucket (
814+ new_bucket_name , user_project = USER_PROJECT )
815+
816+ SOURCE_KEY = os .urandom (32 )
817+ source = with_user_project .blob (
818+ BLOB_NAME , encryption_key = SOURCE_KEY )
819+ source .upload_from_filename (file_data ['path' ])
820+ source_data = source .download_as_string ()
821+
822+ DEST_KEY = os .urandom (32 )
823+ dest = with_user_project .blob (BLOB_NAME , encryption_key = DEST_KEY )
824+ token , rewritten , total = dest .rewrite (source )
825+
826+ self .assertEqual (token , None )
827+ self .assertEqual (rewritten , len (source_data ))
828+ self .assertEqual (total , len (source_data ))
829+
830+ self .assertEqual (dest .download_as_string (), source_data )
831+ finally :
832+ retry_429 (created .delete )(force = True )
0 commit comments