async def test_set_delete_retention_policy(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account.name, "blob"), credential=storage_account_key, transport=AiohttpTestTransport()) delete_retention_policy = RetentionPolicy(enabled=True, days=2) # Act await bsc.set_service_properties( delete_retention_policy=delete_retention_policy) # Assert received_props = await bsc.get_service_properties() self._assert_delete_retention_policy_equal( received_props['delete_retention_policy'], delete_retention_policy)
def test_set_minute_metrics(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), credential=storage_account_key) minute_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act bsc.set_service_properties(minute_metrics=minute_metrics) # Assert received_props = bsc.get_service_properties() self._assert_metrics_equal(received_props['minute_metrics'], minute_metrics)
def test_soft_delete_and_undelete_blob(self): # Instantiate a BlobServiceClient using a connection string from azure.storage.blob import BlobServiceClient blob_service_client = BlobServiceClient.from_connection_string( self.connection_string) # Create a retention policy to retain deleted blobs from azure.storage.blob import RetentionPolicy delete_retention_policy = RetentionPolicy(enabled=True, days=1) # Set the retention policy on the service blob_service_client.set_service_properties( delete_retention_policy=delete_retention_policy) # Instantiate a ContainerClient container_client = blob_service_client.get_container_client( "containerfordeletedblobs") # Create new Container try: container_client.create_container() except ResourceExistsError: # Container already created pass # Upload a blob to the container with open(SOURCE_FILE, "rb") as data: blob_client = container_client.upload_blob(name="my_blob", data=data) # Soft delete blob in the container (blob can be recovered with undelete) blob_client.delete_blob() # [START undelete_blob] # Undelete the blob before the retention policy expires blob_client.undelete_blob() # [END undelete_blob] # [START get_blob_properties] properties = blob_client.get_blob_properties() # [END get_blob_properties] assert properties is not None # Delete container blob_service_client.delete_container("containerfordeletedblobs")
def test_set_logging(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self._account_url(storage_account.name), credential=storage_account_key) logging = BlobAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy( enabled=True, days=5)) # Act bsc.set_service_properties(analytics_logging=logging) # Assert received_props = bsc.get_service_properties() self._assert_logging_equal(received_props['analytics_logging'], logging)
async def test_set_hour_metrics(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), credential=storage_account_key, transport=AiohttpTestTransport()) hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act await bsc.set_service_properties(hour_metrics=hour_metrics) # Assert received_props = await bsc.get_service_properties() self._assert_metrics_equal(received_props['hour_metrics'], hour_metrics)
async def test_set_logging(self, storage_account_name, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key, transport=AiohttpTestTransport()) logging = BlobAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act await bsc.set_service_properties(analytics_logging=logging) # Assert received_props = await bsc.get_service_properties() self._assert_logging_equal(received_props['analytics_logging'], logging)