diff --git a/acceptance/openstack/identity/v2/extension_test.go b/acceptance/openstack/identity/v2/extension_test.go
index 3e526f1..c6a2bde 100644
--- a/acceptance/openstack/identity/v2/extension_test.go
+++ b/acceptance/openstack/identity/v2/extension_test.go
@@ -6,7 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud/acceptance/clients"
-	"github.com/gophercloud/gophercloud/acceptance/openstack"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/extensions"
 )
 
@@ -27,7 +27,7 @@
 	}
 
 	for _, extension := range allExtensions {
-		openstack.PrintExtension(t, &extension)
+		tools.PrintResource(t, extension)
 	}
 }
 
@@ -42,5 +42,5 @@
 		t.Fatalf("Unable to get extension OS-KSCRUD: %v", err)
 	}
 
-	openstack.PrintExtension(t, extension)
+	tools.PrintResource(t, extension)
 }
diff --git a/acceptance/openstack/identity/v2/identity.go b/acceptance/openstack/identity/v2/identity.go
index f1c6624..2d3bd09 100644
--- a/acceptance/openstack/identity/v2/identity.go
+++ b/acceptance/openstack/identity/v2/identity.go
@@ -9,7 +9,6 @@
 	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/extensions/admin/roles"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
-	"github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/users"
 )
 
@@ -145,72 +144,3 @@
 
 	return newUser, nil
 }
-
-// PrintCatalogEntry will print a catalog entry and all of its attributes.
-func PrintCatalogEntry(t *testing.T, catalogEntry *tokens.CatalogEntry) {
-	t.Logf("Name: %s", catalogEntry.Name)
-	t.Logf("Type: %s", catalogEntry.Type)
-
-	t.Log("Endpoints:")
-	for _, endpoint := range catalogEntry.Endpoints {
-		t.Logf("\tTenantID: %s", endpoint.TenantID)
-		t.Logf("\tPublicURL: %s", endpoint.PublicURL)
-		t.Logf("\tInternalURL: %s", endpoint.InternalURL)
-		t.Logf("\tAdminURL: %s", endpoint.AdminURL)
-		t.Logf("\tRegion: %s", endpoint.Region)
-		t.Logf("\tVersionID: %s", endpoint.VersionID)
-		t.Logf("\tVersionInfo: %s", endpoint.VersionInfo)
-		t.Logf("\tVersionList: %s", endpoint.VersionList)
-	}
-}
-
-// PrintRole will print a role and all of its attributes.
-func PrintRole(t *testing.T, role *roles.Role) {
-	t.Logf("ID: %s", role.ID)
-	t.Logf("Name: %v", role.Name)
-	t.Logf("Description: %s", role.Description)
-	t.Logf("ServiceID: %s", role.ServiceID)
-}
-
-// PrintTenant will print a tenant and all of its attributes.
-func PrintTenant(t *testing.T, tenant *tenants.Tenant) {
-	t.Logf("ID: %s", tenant.ID)
-	t.Logf("Name: %s", tenant.Name)
-	t.Logf("Description: %s", tenant.Description)
-	t.Logf("Enabled: %t", tenant.Enabled)
-}
-
-// PrintToken will print a token and all of its attributes.
-func PrintToken(t *testing.T, token *tokens.Token) {
-	t.Logf("ID: %s", token.ID)
-	t.Logf("ExpiresAt: %v", token.ExpiresAt)
-	t.Logf("TenantID: %s", token.Tenant.ID)
-}
-
-// PrintTokenUser will print the user information of a token and all attributes.
-func PrintTokenUser(t *testing.T, user *tokens.User) {
-	t.Logf("ID: %s", user.ID)
-	t.Logf("Name: %s", user.Name)
-	t.Logf("Username: %s", user.UserName)
-
-	t.Log("Roles")
-	for _, role := range user.Roles {
-		t.Logf("\t%s", role)
-	}
-}
-
-// PrintUser will print a user and all of its attributes.
-func PrintUser(t *testing.T, user *users.User) {
-	t.Logf("ID: %s", user.ID)
-	t.Logf("Name: %s", user.Name)
-	t.Logf("Username: %s", user.Username)
-	t.Logf("Enabled: %t", user.Enabled)
-	t.Logf("Email: %s", user.Email)
-	t.Logf("TenantID: %s", user.TenantID)
-}
-
-// PrintUserRole will print the roles that a user has been granted.
-func PrintUserRole(t *testing.T, role *users.Role) {
-	t.Logf("ID: %s", role.ID)
-	t.Logf("Name: %s", role.Name)
-}
diff --git a/acceptance/openstack/identity/v2/role_test.go b/acceptance/openstack/identity/v2/role_test.go
index 5589b1b..83fbd31 100644
--- a/acceptance/openstack/identity/v2/role_test.go
+++ b/acceptance/openstack/identity/v2/role_test.go
@@ -6,6 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud/acceptance/clients"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/extensions/admin/roles"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/users"
 )
@@ -50,7 +51,7 @@
 
 	t.Logf("Roles of user %s:", user.Name)
 	for _, role := range allRoles {
-		PrintUserRole(t, &role)
+		tools.PrintResource(t, role)
 	}
 }
 
@@ -71,6 +72,6 @@
 	}
 
 	for _, r := range allRoles {
-		PrintRole(t, &r)
+		tools.PrintResource(t, r)
 	}
 }
diff --git a/acceptance/openstack/identity/v2/tenant_test.go b/acceptance/openstack/identity/v2/tenant_test.go
index ed457d4..2053614 100644
--- a/acceptance/openstack/identity/v2/tenant_test.go
+++ b/acceptance/openstack/identity/v2/tenant_test.go
@@ -6,6 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud/acceptance/clients"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
 )
 
@@ -26,6 +27,6 @@
 	}
 
 	for _, tenant := range allTenants {
-		PrintTenant(t, &tenant)
+		tools.PrintResource(t, tenant)
 	}
 }
diff --git a/acceptance/openstack/identity/v2/token_test.go b/acceptance/openstack/identity/v2/token_test.go
index 4cd8301..82a317a 100644
--- a/acceptance/openstack/identity/v2/token_test.go
+++ b/acceptance/openstack/identity/v2/token_test.go
@@ -6,6 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud/acceptance/clients"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
 )
@@ -27,7 +28,7 @@
 		t.Fatalf("Unable to extract token: %v", err)
 	}
 
-	PrintToken(t, token)
+	tools.PrintResource(t, token)
 
 	catalog, err := result.ExtractServiceCatalog()
 	if err != nil {
@@ -35,7 +36,7 @@
 	}
 
 	for _, entry := range catalog.Entries {
-		PrintCatalogEntry(t, &entry)
+		tools.PrintResource(t, entry)
 	}
 }
 
@@ -56,7 +57,7 @@
 		t.Fatalf("Unable to extract token: %v", err)
 	}
 
-	PrintToken(t, token)
+	tools.PrintResource(t, token)
 
 	getResult := tokens.Get(client, token.ID)
 	user, err := getResult.ExtractUser()
@@ -64,5 +65,5 @@
 		t.Fatalf("Unable to extract user: %v", err)
 	}
 
-	PrintTokenUser(t, user)
+	tools.PrintResource(t, user)
 }
diff --git a/acceptance/openstack/identity/v2/user_test.go b/acceptance/openstack/identity/v2/user_test.go
index 5c6bfd9..faa5bba 100644
--- a/acceptance/openstack/identity/v2/user_test.go
+++ b/acceptance/openstack/identity/v2/user_test.go
@@ -6,6 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud/acceptance/clients"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
 	"github.com/gophercloud/gophercloud/openstack/identity/v2/users"
 )
 
@@ -26,7 +27,7 @@
 	}
 
 	for _, user := range allUsers {
-		PrintUser(t, &user)
+		tools.PrintResource(t, user)
 	}
 }
 
@@ -47,12 +48,12 @@
 	}
 	defer DeleteUser(t, client, user)
 
-	PrintUser(t, user)
+	tools.PrintResource(t, user)
 
 	newUser, err := UpdateUser(t, client, user)
 	if err != nil {
 		t.Fatalf("Unable to update user: %v", err)
 	}
 
-	PrintUser(t, newUser)
+	tools.PrintResource(t, newUser)
 }
