def test_verify_s3_object_version_multiple_versions(self): s3_obj = self.s3.Object(self.s3_bucket_name, self.s3_key_name) # Set up responses get_bucket_versioning_response = {"Status": "Enabled"} get_bucket_versioning_expected_params = {"Bucket": self.s3_bucket_name} s3_stubber_resource = Stubber(self.s3.meta.client) s3_stubber_resource.add_response( "get_bucket_versioning", get_bucket_versioning_response, get_bucket_versioning_expected_params, ) list_object_versions_response = { "Versions": [ { "ETag": "string", "Size": 123, "StorageClass": "STANDARD", "Key": "string", "VersionId": "string", "IsLatest": True, "LastModified": datetime.datetime(2015, 1, 1), "Owner": { "DisplayName": "string", "ID": "string" }, }, { "ETag": "string", "Size": 123, "StorageClass": "STANDARD", "Key": "string", "VersionId": "string", "IsLatest": True, "LastModified": datetime.datetime(2015, 1, 1), "Owner": { "DisplayName": "string", "ID": "string" }, }, ] } list_object_versions_expected_params = { "Bucket": self.s3_bucket_name, "Prefix": self.s3_key_name, } s3_stubber_resource.add_response( "list_object_versions", list_object_versions_response, list_object_versions_expected_params, ) with self.assertRaises(Exception) as cm: with s3_stubber_resource: verify_s3_object_version(self.s3, s3_obj) self.assertEquals( cm.exception.message, "Detected multiple object versions in {}.{}, aborting processing" .format(self.s3_bucket_name, self.s3_key_name), )
def test_verify_s3_object_version(self): s3_obj = self.s3.Object(self.s3_bucket_name, self.s3_key_name) # Set up responses get_bucket_versioning_response = {"Status": "Enabled"} get_bucket_versioning_expected_params = {"Bucket": self.s3_bucket_name} s3_stubber_resource = Stubber(self.s3.meta.client) s3_stubber_resource.add_response( "get_bucket_versioning", get_bucket_versioning_response, get_bucket_versioning_expected_params, ) list_object_versions_response = { "Versions": [{ "ETag": "string", "Size": 123, "StorageClass": "STANDARD", "Key": "string", "VersionId": "string", "IsLatest": True, "LastModified": datetime.datetime(2015, 1, 1), "Owner": { "DisplayName": "string", "ID": "string" }, }] } list_object_versions_expected_params = { "Bucket": self.s3_bucket_name, "Prefix": self.s3_key_name, } s3_stubber_resource.add_response( "list_object_versions", list_object_versions_response, list_object_versions_expected_params, ) try: with s3_stubber_resource: verify_s3_object_version(self.s3, s3_obj) except Exception as e: self.fail( "verify_s3_object_version() raised Exception unexpectedly!") raise e
def test_verify_s3_object_versioning_not_enabled(self): s3_obj = self.s3.Object(self.s3_bucket_name, self.s3_key_name) # Set up responses get_bucket_versioning_response = {"Status": "Disabled"} get_bucket_versioning_expected_params = {"Bucket": self.s3_bucket_name} s3_stubber_resource = Stubber(self.s3.meta.client) s3_stubber_resource.add_response( "get_bucket_versioning", get_bucket_versioning_response, get_bucket_versioning_expected_params, ) with self.assertRaises(Exception) as cm: with s3_stubber_resource: verify_s3_object_version(self.s3, s3_obj) self.assertEquals( cm.exception.message, "Object versioning is not enabled in bucket {}".format( self.s3_bucket_name), )