def _common_rbac_err_polish_test_mock_setup(graph_client_mock, auth_client_mock, error_msg, subscription_id): def _test_deserializer(resp_type, response): err = FakedError(error_msg) return err faked_role_client = mock.MagicMock() faked_role_client.config.subscription_id = subscription_id auth_client_mock.return_value = faked_role_client faked_graph_client = mock.MagicMock() graph_client_mock.return_value = faked_graph_client faked_graph_client.applications.create.side_effect = GraphErrorException(_test_deserializer, None)
def test_acs_sp_create_failed_with_polished_error_if_due_to_permission(self): class FakedError(object): def __init__(self, message): self.message = message def _test_deserializer(resp_type, response): err = FakedError('Insufficient privileges to complete the operation') return err client = mock.MagicMock() client.create.side_effect = GraphErrorException(_test_deserializer, None) # action with self.assertRaises(CLIError) as context: create_application(client, 'acs_sp', 'http://acs_sp', ['http://acs_sp']) # assert we handled such error self.assertTrue('https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal' in str(context.exception))