def test_get_user_command_by_order(mocker, args, mock_url, requests_mock): """ Given: - Cortex XSOAR arguments. When: - Executing get-user command. Cases: case a: User profile has email data. case b: User profile has email and username data. case c: User profile has email, username and id data. Then: - Ensure expected data is returned, and expected mocked URL is called. """ client = mock_client() requests_mock.get( mock_url, json=GITHUB_UPDATE_USER_OUTPUT ) mocker.patch.object(IAMUserProfile, 'update_with_app_data', return_value={}) iam_user_profile = get_user_command(client, args, 'mapper_in', 'mapper_out') outputs = get_outputs_from_user_profile(iam_user_profile) assert outputs.get('action') == IAMActions.GET_USER assert outputs.get('success') is True assert outputs.get('active') is True assert outputs.get('id') == '12345' assert outputs.get('username') == '*****@*****.**'
def test_get_user_command__non_existing_user(mocker): client = mock_client() args = {"user-profile": {"emails": "*****@*****.**"}} mocker.patch.object(client, 'get_user', return_value={}) iam_user_profile = get_user_command(client, args, 'mapper_in', 'mapper_out') outputs = get_outputs_from_user_profile(iam_user_profile) assert outputs.get('action') == IAMActions.GET_USER assert outputs.get('success') is False assert outputs.get('errorCode') == IAMErrors.USER_DOES_NOT_EXIST[0] assert outputs.get('errorMessage') == IAMErrors.USER_DOES_NOT_EXIST[1]
def test_get_user_command__existing_user(mocker): client = mock_client() args = {"user-profile": {"email": "*****@*****.**"}} mocker.patch.object(client, 'get_user', return_value=GITHUB_UPDATE_USER_OUTPUT) mocker.patch.object(IAMUserProfile, 'update_with_app_data', return_value={}) iam_user_profile = get_user_command(client, args, 'mapper_in') outputs = get_outputs_from_user_profile(iam_user_profile) assert outputs.get('action') == IAMActions.GET_USER assert outputs.get('success') is True assert outputs.get('active') is True assert outputs.get('id') == '12345' assert outputs.get('username') == '*****@*****.**'
def test_get_user_command__bad_response(mocker): client = mock_client() args = {"user-profile": {"emails": "*****@*****.**"}} bad_response = Response() bad_response.status_code = 500 bad_response._content = b'{"errorCode": "mock_error_code", ' \ b'"errorSummary": "mock_error_summary", ' \ b'"message": "Not Found"}' mocker.patch.object(Session, 'request', return_value=bad_response) iam_user_profile = get_user_command(client, args, 'mapper_in', 'mapper_out') outputs = get_outputs_from_user_profile(iam_user_profile) assert outputs.get('action') == IAMActions.GET_USER assert outputs.get('success') is False assert outputs.get('errorCode') == 500 assert outputs.get('errorMessage') == 'Not Found'