def test_retrieve_token_from_azure_identity( self, mock_azure_identity_TokenCredential): IoTHubAmqpClientTokenAuth(fake_hostname, mock_azure_identity_TokenCredential, fake_token_scope) mock_azure_identity_TokenCredential.get_token.assert_called_once_with( fake_token_scope)
def test_create_JWTTokenAuth_with_bearer_token_default_scope( self, mocker, mock_azure_identity_TokenCredential, mock_uamqp_SendClient): amqp_token_init_mock = mocker.patch.object(uamqp.authentication, "JWTTokenAuth") amqp_token_mock = amqp_token_init_mock.return_value IoTHubAmqpClientTokenAuth(fake_hostname, mock_azure_identity_TokenCredential) # JWTTokenAuth Creation assert amqp_token_init_mock.call_count == 1 assert amqp_token_init_mock.call_args[1][ "uri"] == "https://" + fake_hostname assert amqp_token_init_mock.call_args[1][ "audience"] == "https://iothubs.azure.net/.default" assert amqp_token_init_mock.call_args[1]["token_type"] == b"bearer" assert amqp_token_mock.update_token.call_count == 1 # AMQP SendClient is created assert mock_uamqp_SendClient.call_count == 1 expected_target = "amqps://" + fake_hostname + "/messages/devicebound" assert mock_uamqp_SendClient.call_args == mocker.call( target=expected_target, auth=amqp_token_mock, keep_alive_interval=120)
def test_bearer_token_with_custom_scope( self, mocker, mock_azure_identity_TokenCredential, mock_uamqp_SendClient): amqp_token_init_mock = mocker.patch.object(uamqp.authentication, "JWTTokenAuth") amqp_token_mock = amqp_token_init_mock.return_value IoTHubAmqpClientTokenAuth(fake_hostname, mock_azure_identity_TokenCredential, token_scope=fake_token_scope) # Bearer Token Creation assert amqp_token_init_mock.call_count == 1 assert amqp_token_init_mock.call_args[1][ "uri"] == "https://" + fake_hostname assert amqp_token_init_mock.call_args[1][ "audience"] == fake_token_scope assert amqp_token_init_mock.call_args[1]["token_type"] == b"bearer" assert amqp_token_mock.update_token.call_count == 1 # AMQP SendClient is created assert mock_uamqp_SendClient.call_count == 1 expected_target = "amqps://" + fake_hostname + "/messages/devicebound" assert mock_uamqp_SendClient.call_args == mocker.call( target=expected_target, auth=amqp_token_mock)
def client(self, mock_azure_identity_TokenCredential): return IoTHubAmqpClientTokenAuth( hostname=fake_hostname, token_credential=mock_azure_identity_TokenCredential, token_scope=fake_token_scope, )