mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
62 lines
1.9 KiB
Ruby
62 lines
1.9 KiB
Ruby
Shindo.tests('AWS::IAM | user requests', ['aws']) do
|
|
|
|
unless Fog.mocking?
|
|
Fog::AWS[:iam].create_user('fog_user')
|
|
end
|
|
|
|
tests('success') do
|
|
@login_profile_format = {
|
|
'LoginProfile' => {
|
|
'UserName' => String,
|
|
'CreateDate' => Time
|
|
|
|
},
|
|
'RequestId' => String
|
|
}
|
|
|
|
tests("#create_login_profile('fog_user')").formats(@login_profile_format) do
|
|
pending if Fog.mocking?
|
|
Fog::AWS[:iam].create_login_profile('fog_user', 'somepassword').body
|
|
end
|
|
|
|
tests("#get_login_profile('fog_user')").formats(@login_profile_format) do
|
|
pending if Fog.mocking?
|
|
result = Fog::AWS[:iam].get_login_profile('fog_user').body
|
|
returns('fog_user') {result['LoginProfile']['UserName']}
|
|
result
|
|
end
|
|
|
|
tests("#update_login_profile('fog_user')").formats(AWS::IAM::Formats::BASIC) do
|
|
pending if Fog.mocking?
|
|
begin
|
|
Fog::AWS[:iam].update_login_profile('fog_user', 'otherpassword').body
|
|
rescue Excon::Errors::Conflict #profile cannot be updated or deleted until it has finished creating; api provides no way of telling whether creation process complete
|
|
sleep 5
|
|
retry
|
|
end
|
|
end
|
|
|
|
tests("#delete_login_profile('fog_user')").formats(AWS::IAM::Formats::BASIC) do
|
|
pending if Fog.mocking?
|
|
Fog::AWS[:iam].delete_login_profile('fog_user').body
|
|
end
|
|
|
|
tests("#get_login_profile('fog_user')") do
|
|
pending if Fog.mocking?
|
|
raises(Excon::Errors::NotFound) {Fog::AWS[:iam].get_login_profile('fog_user')}
|
|
end
|
|
|
|
end
|
|
|
|
tests('failure') do
|
|
tests('get login profile for non existing user') do
|
|
pending if Fog.mocking?
|
|
raises(Fog::AWS::IAM::NotFound) { Fog::AWS[:iam].get_login_profile('idontexist')}
|
|
raises(Fog::AWS::IAM::NotFound) { Fog::AWS[:iam].delete_login_profile('fog_user')}
|
|
end
|
|
end
|
|
|
|
unless Fog.mocking?
|
|
Fog::AWS[:iam].delete_user('fog_user')
|
|
end
|
|
end
|