def test_get_botocore_client_use_awsprofile_profile_not_found(mocker, capsys):
    config = get_config()
    get_target_region_mock = mocker.patch('mount_efs.get_target_region',
                                          return_value=DEFAULT_REGION)
    mount_efs.BOTOCORE_PRESENT = True
    boto_session_mock = MagicMock()
    boto_session_mock.set_config_variable.return_value = None
    boto_session_mock.create_client.side_effect = [
        ProfileNotFound(profile='test_profile')
    ]
    mocker.patch('botocore.session.get_session',
                 return_value=boto_session_mock)

    with pytest.raises(SystemExit) as ex:
        mount_efs.get_botocore_client(config, 'efs',
                                      {'awsprofile': 'test-profile'})

    assert 0 != ex.value.code

    out, err = capsys.readouterr()

    assert 'could not be found' in err

    boto_session_mock.set_config_variable.assert_called_once()
    utils.assert_called(get_target_region_mock)
def test_botocore_none_if_botocore_not_present(mocker):
    config = _get_mock_config(DEFAULT_CLOUDWATCH_ENABLED,
                              DEFAULT_CLOUDWATCH_LOG_GROUP,
                              DEFAULT_RETENTION_DAYS)
    mount_efs.BOTOCORE_PRESENT = False
    client = mount_efs.get_botocore_client(config, 'logs', {})
    assert client == None
Exemple #3
0
def _test_botocore_client_established(mocker, iam_name):
    config = _get_mock_config(DEFAULT_CLOUDWATCH_ENABLED,
                              DEFAULT_CLOUDWATCH_LOG_GROUP,
                              DEFAULT_RETENTION_DAYS)
    mount_efs.BOTOCORE_PRESENT = True
    mocker.patch("mount_efs.get_target_region", return_value="us-east-1")
    mocker.patch("mount_efs.get_iam_role_name", return_value=iam_name)
    mocker.patch(
        "mount_efs.get_aws_security_credentials_from_instance_metadata",
        return_value=(
            {
                "AccessKeyId": "123456",
                "SecretAccessKey": "123456",
                "Token": "123456"
            },
            "",
        ),
    )

    boto_session_mock = MagicMock()
    boto_session_mock.create_client.return_value = "fake-client"
    mocker.patch("botocore.session.get_session",
                 return_value=boto_session_mock)

    client = mount_efs.get_botocore_client(config, "logs", {})
    assert client == "fake-client"
def test_get_botocore_client_botocore_not_present(mocker):
    config = get_config()
    get_target_region_mock = mocker.patch('mount_efs.get_target_region',
                                          return_value=DEFAULT_REGION)
    mount_efs.BOTOCORE_PRESENT = False
    boto_session_mock = MagicMock()
    mocker.patch('botocore.session.get_session',
                 return_value=boto_session_mock)

    client = mount_efs.get_botocore_client(config, 'efs', {})

    assert client == None
    boto_session_mock.assert_not_called()
    utils.assert_not_called(get_target_region_mock)
Exemple #5
0
def test_get_botocore_client_use_awsprofile(mocker):
    config = get_config()
    get_target_region_mock = mocker.patch(
        "mount_efs.get_target_region", return_value=DEFAULT_REGION
    )
    mount_efs.BOTOCORE_PRESENT = True
    boto_session_mock = MagicMock()
    boto_session_mock.set_config_variable.return_value = None
    boto_session_mock.create_client.return_value = "fake-client"
    mocker.patch("botocore.session.get_session", return_value=boto_session_mock)

    client = mount_efs.get_botocore_client(config, "efs", {"awsprofile": "test"})

    assert client == "fake-client"
    boto_session_mock.set_config_variable.assert_called_once()
    utils.assert_called(get_target_region_mock)
def test_get_botocore_client_botocore_present(mocker):
    config = get_config()
    get_target_region_mock = mocker.patch('mount_efs.get_target_region',
                                          return_value=DEFAULT_REGION)
    mount_efs.BOTOCORE_PRESENT = True
    boto_session_mock = MagicMock()
    boto_session_mock.set_config_variable.return_value = None
    boto_session_mock.create_client.return_value = 'fake-client'
    mocker.patch('botocore.session.get_session',
                 return_value=boto_session_mock)

    client = mount_efs.get_botocore_client(config, 'efs', {})

    assert client == 'fake-client'
    boto_session_mock.set_config_variable.assert_not_called()
    boto_session_mock.create_client.assert_called_once()
    utils.assert_called(get_target_region_mock)
def _test_botocore_client_established(mocker, iam_name):
    config = _get_mock_config(DEFAULT_CLOUDWATCH_ENABLED,
                              DEFAULT_CLOUDWATCH_LOG_GROUP,
                              DEFAULT_RETENTION_DAYS)
    mount_efs.BOTOCORE_PRESENT = True
    mocker.patch('mount_efs.get_target_region', return_value='us-east-1')
    mocker.patch('mount_efs.get_iam_role_name', return_value=iam_name)
    mocker.patch(
        'mount_efs.get_aws_security_credentials_from_instance_metadata',
        return_value=({
            'AccessKeyId': '123456',
            'SecretAccessKey': '123456',
            'Token': '123456'
        }, ''))

    boto_session_mock = MagicMock()
    boto_session_mock.create_client.return_value = 'fake-client'
    mocker.patch('botocore.session.get_session',
                 return_value=boto_session_mock)

    client = mount_efs.get_botocore_client(config, 'logs', {})
    assert client == 'fake-client'