Exemple #1
0
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') == '*****@*****.**'
Exemple #2
0
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]
Exemple #3
0
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') == '*****@*****.**'
Exemple #4
0
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'