Identity Acceptance Test Cleanup (#49)
diff --git a/acceptance/openstack/identity/v2/user_test.go b/acceptance/openstack/identity/v2/user_test.go
index 7938b37..5c6bfd9 100644
--- a/acceptance/openstack/identity/v2/user_test.go
+++ b/acceptance/openstack/identity/v2/user_test.go
@@ -3,125 +3,56 @@
package v2
import (
- "strconv"
"testing"
- "github.com/gophercloud/gophercloud"
- "github.com/gophercloud/gophercloud/acceptance/tools"
- "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
+ "github.com/gophercloud/gophercloud/acceptance/clients"
"github.com/gophercloud/gophercloud/openstack/identity/v2/users"
- "github.com/gophercloud/gophercloud/pagination"
- th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestUsers(t *testing.T) {
- client := authenticatedClient(t)
-
- tenantID := findTenant(t, client)
-
- userID := createUser(t, client, tenantID)
-
- listUsers(t, client)
-
- getUser(t, client, userID)
-
- updateUser(t, client, userID)
-
- listUserRoles(t, client, tenantID, userID)
-
- deleteUser(t, client, userID)
-}
-
-func findTenant(t *testing.T, client *gophercloud.ServiceClient) string {
- var tenantID string
- err := tenants.List(client, nil).EachPage(func(page pagination.Page) (bool, error) {
- tenantList, err := tenants.ExtractTenants(page)
- th.AssertNoErr(t, err)
-
- for _, t := range tenantList {
- tenantID = t.ID
- break
- }
-
- return true, nil
- })
- th.AssertNoErr(t, err)
-
- return tenantID
-}
-
-func createUser(t *testing.T, client *gophercloud.ServiceClient, tenantID string) string {
- t.Log("Creating user")
-
- opts := users.CreateOpts{
- Name: tools.RandomString("user_", 5),
- Enabled: users.Disabled,
- TenantID: tenantID,
- Email: "new_user@foo.com",
+func TestUsersList(t *testing.T) {
+ client, err := clients.NewIdentityV2AdminClient()
+ if err != nil {
+ t.Fatalf("Unable to obtain an identity client: %v", err)
}
- user, err := users.Create(client, opts).Extract()
- th.AssertNoErr(t, err)
- t.Logf("Created user %s on tenant %s", user.ID, tenantID)
-
- return user.ID
-}
-
-func listUsers(t *testing.T, client *gophercloud.ServiceClient) {
- err := users.List(client).EachPage(func(page pagination.Page) (bool, error) {
- userList, err := users.ExtractUsers(page)
- th.AssertNoErr(t, err)
-
- for _, user := range userList {
- t.Logf("Listing user: ID [%s] Name [%s] Email [%s] Enabled? [%s]",
- user.ID, user.Name, user.Email, strconv.FormatBool(user.Enabled))
- }
-
- return true, nil
- })
-
- th.AssertNoErr(t, err)
-}
-
-func getUser(t *testing.T, client *gophercloud.ServiceClient, userID string) {
- _, err := users.Get(client, userID).Extract()
- th.AssertNoErr(t, err)
- t.Logf("Getting user %s", userID)
-}
-
-func updateUser(t *testing.T, client *gophercloud.ServiceClient, userID string) {
- opts := users.UpdateOpts{Name: tools.RandomString("new_name", 5), Email: "new@foo.com"}
- user, err := users.Update(client, userID, opts).Extract()
- th.AssertNoErr(t, err)
- t.Logf("Updated user %s: Name [%s] Email [%s]", userID, user.Name, user.Email)
-}
-
-func listUserRoles(t *testing.T, client *gophercloud.ServiceClient, tenantID, userID string) {
- count := 0
- err := users.ListRoles(client, tenantID, userID).EachPage(func(page pagination.Page) (bool, error) {
- count++
-
- roleList, err := users.ExtractRoles(page)
- th.AssertNoErr(t, err)
-
- t.Logf("Listing roles for user %s", userID)
-
- for _, r := range roleList {
- t.Logf("- %s (%s)", r.Name, r.ID)
- }
-
- return true, nil
- })
-
- if count == 0 {
- t.Logf("No roles for user %s", userID)
+ allPages, err := users.List(client).AllPages()
+ if err != nil {
+ t.Fatalf("Unable to list users: %v", err)
}
- th.AssertNoErr(t, err)
+ allUsers, err := users.ExtractUsers(allPages)
+ if err != nil {
+ t.Fatalf("Unable to extract users: %v", err)
+ }
+
+ for _, user := range allUsers {
+ PrintUser(t, &user)
+ }
}
-func deleteUser(t *testing.T, client *gophercloud.ServiceClient, userID string) {
- res := users.Delete(client, userID)
- th.AssertNoErr(t, res.Err)
- t.Logf("Deleted user %s", userID)
+func TestUsersCreateUpdateDelete(t *testing.T) {
+ client, err := clients.NewIdentityV2AdminClient()
+ if err != nil {
+ t.Fatalf("Unable to obtain an identity client: %v", err)
+ }
+
+ tenant, err := FindTenant(t, client)
+ if err != nil {
+ t.Fatalf("Unable to get a tenant: %v", err)
+ }
+
+ user, err := CreateUser(t, client, tenant)
+ if err != nil {
+ t.Fatalf("Unable to create a user: %v", err)
+ }
+ defer DeleteUser(t, client, user)
+
+ PrintUser(t, user)
+
+ newUser, err := UpdateUser(t, client, user)
+ if err != nil {
+ t.Fatalf("Unable to update user: %v", err)
+ }
+
+ PrintUser(t, newUser)
}