def test_message_base64_decode_fails(self, resource_group, location, storage_account, storage_account_key): # Arrange qsc = QueueServiceClient(self._account_url(storage_account.name), storage_account_key) queue = QueueClient( account_url=self._account_url(storage_account.name), queue_name=self.get_resource_name(TEST_QUEUE_PREFIX), credential=storage_account_key, message_encode_policy=None, message_decode_policy=BinaryBase64DecodePolicy()) try: queue.create_queue() except ResourceExistsError: pass message = u'xyz' queue.send_message(message) # Action. with self.assertRaises(DecodeError) as e: queue.peek_messages() # Asserts self.assertNotEqual( -1, str(e.exception).find('Message content is not valid base 64'))
def get_queue(queue_name, create_queue, clear_queue): ''' Note that generating the queueclient does not mean there must a queue there as one of the properties of queueclient is "create_queue", so it's really a representation of a queue which may or may not exist yet. ''' keyVaultName = os.environ["KEY_VAULT_NAME"] keyVault_URI = "https://" + keyVaultName + ".vault.azure.net" credential = DefaultAzureCredential() client = SecretClient(vault_url=keyVault_URI, credential=credential) data_access_key = client.get_secret("thecupstore-key") account_url = "https://thecupstore.queue.core.windows.net/" queueclient = QueueClient(account_url=account_url, queue_name=queue_name, credential=data_access_key.value, message_encode_policy=TextBase64EncodePolicy(), message_decode_policy=TextBase64DecodePolicy()) # Check that the queue exists and if not create it if the create switch has been passed as True try: queueclient.get_queue_properties() except: if create_queue: queueclient.create_queue() else: message = "Queue does not exist" else: if clear_queue: queueclient.clear_messages() if 'message' in locals(): # checks for existence of message variable return message else: return queueclient
def test_message_base64_decode_fails(self): # Arrange queue_url = self._get_queue_url() credentials = self._get_shared_key_credential() queue = QueueClient( queue_url=queue_url, queue=self.get_resource_name(TEST_QUEUE_PREFIX), credential=credentials, message_encode_policy=TextXMLEncodePolicy(), message_decode_policy=BinaryBase64DecodePolicy()) try: queue.create_queue() except ResourceExistsError: pass message = u'xyz' queue.enqueue_message(message) # Action. with self.assertRaises(DecodeError) as e: queue.peek_messages() # Asserts self.assertNotEqual(-1, str(e.exception).find('Message content is not valid base 64'))
# Each storage account has a primary and secondary access key. # These keys are used by aplications to access data in your storage account, such as Queues. # Obtain the primary storage access key for use with the rest of the demo response = azurerm.get_storage_account_keys(auth_token, subscription_id, resourcegroup_name, storageaccount_name) storageaccount_keys = json.loads(response.text) storageaccount_primarykey = storageaccount_keys['keys'][0]['value'] # Create the Queue with the Azure Storage SDK and the access key obtained in the previous step queue_client = QueueClient(account_url=storageaccount_url, queue_name='pizzaqueue', credential=storageaccount_primarykey) response = queue_client.create_queue() if response == True: print('Storage Queue: pizzaqueue created successfully.\n') else: print('Error creating Storage Queue.\n') ### # Use the Azure Storage Storage SDK for Python to drop some messages in our Queue ### print( 'Now let\'s drop some messages in our Queue.\nThese messages could indicate a take-out order being received for a customer ordering pizza.' ) raw_input('Press Enter to continue...') # This basic example creates a message for each pizza ordered. The message is *put* on the Queue. queue_client.send_message(u'Veggie pizza ordered.')