/tests/rackspace/requests/identity/user_tests.rb
https://gitlab.com/debian-ruby/ruby-fog-rackspace · Ruby · 106 lines · 82 code · 21 blank · 3 comment · 1 complexity · e4aa99a3be78e75d218710a99c7618b7 MD5 · raw file
- Shindo.tests('Fog::Rackspace::Identity | users', ['rackspace']) do
- pending if Fog.mock?
- USER_INFO = {
- 'id' => String,
- 'username' => String,
- 'email' => Fog::Nullable::String,
- 'enabled' => Fog::Boolean,
- 'OS-KSADM:password' => Fog::Nullable::String,
- 'created' => Fog::Nullable::String,
- 'updated' => Fog::Nullable::String
- }
- USER_FORMAT = {
- 'user' => USER_INFO
- }
- USERS_FORMAT = {
- 'users' => [USER_INFO]
- }
- CREDENTIAL_FORMAT = {
- 'RAX-KSKEY:apiKeyCredentials' => {
- 'username' => String,
- 'apiKey' => String
- }
- }
- CREDENTIALS_FORMAT = {
- 'credentials' => [CREDENTIAL_FORMAT]
- }
- ROLES_FORMAT = {
- 'roles' => [{
- 'id' => String,
- 'name' => String,
- 'description' => String
- }]
- }
- service = Fog::Rackspace::Identity.new
- id = nil
- username = "fog#{Time.now.to_i.to_s}"
- email = 'fog_user@example.com'
- enabled = true
- password = 'Fog_password1'
- tests('success') do
- tests('#create_user').formats(USER_FORMAT) do
- data = service.create_user(username, email, enabled).body
- id = data['user']['id']
- data
- end
- tests('#delete_user').succeeds do
- service.delete_user(id)
- end
- # there appears to be a werid caching issue. It's just easier to create a new username and continue on
- username = "fog#{Time.now.to_i.to_s}"
- tests('#create_user with password').succeeds do
- data = service.create_user(username, email, enabled, :password => password ).body
- id = data['user']['id']
- data
- end
- tests('#get_user_by_name').formats(USER_FORMAT) do
- data = service.get_user_by_name(username).body
- id = data['user']['id']
- data
- end
- tests('#get_user_by_id').formats(USER_FORMAT) do
- service.get_user_by_id(id).body
- end
- tests('#list_users').formats(USERS_FORMAT) do
- service.list_users().body
- end
- tests('#update_user').formats(USER_FORMAT) do
- service.update_user(id, username, 'updated_user@example.com', enabled).body
- end
- tests('#update_user with password').succeeds do
- service.update_user(id, username, email, enabled, :password => password).body
- end
- tests('#list_user_roles').formats(ROLES_FORMAT) do
- service.list_user_roles(id).body
- end
- service.delete_user(id)
- # Users are only authorized to request their own credentials,
- # so perform credential tests with the ID of the user running tests.
- credential_username = Fog.credentials[:rackspace_username]
- credential_id = service.get_user_by_name(credential_username).body['user']['id']
- tests('#list_credentials').formats(CREDENTIALS_FORMAT) do
- service.list_credentials(credential_id).body
- end
- end
- end