diff --git a/openstack/db/v1/users/testing/doc.go b/openstack/db/v1/users/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/users/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/users/fixtures.go b/openstack/db/v1/users/testing/fixtures.go
similarity index 96%
rename from openstack/db/v1/users/fixtures.go
rename to openstack/db/v1/users/testing/fixtures.go
index 3661154..f49f46f 100644
--- a/openstack/db/v1/users/fixtures.go
+++ b/openstack/db/v1/users/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package users
+package testing
 
 import (
 	"fmt"
diff --git a/openstack/db/v1/users/requests_test.go b/openstack/db/v1/users/testing/requests_test.go
similarity index 68%
rename from openstack/db/v1/users/requests_test.go
rename to openstack/db/v1/users/testing/requests_test.go
index 1eefb33..952f245 100644
--- a/openstack/db/v1/users/requests_test.go
+++ b/openstack/db/v1/users/testing/requests_test.go
@@ -1,9 +1,10 @@
-package users
+package testing
 
 import (
 	"testing"
 
 	db "github.com/gophercloud/gophercloud/openstack/db/v1/databases"
+	"github.com/gophercloud/gophercloud/openstack/db/v1/users"
 	"github.com/gophercloud/gophercloud/pagination"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,25 +15,25 @@
 	defer th.TeardownHTTP()
 	HandleCreate(t)
 
-	opts := BatchCreateOpts{
-		CreateOpts{
+	opts := users.BatchCreateOpts{
+		{
 			Databases: db.BatchCreateOpts{
 				db.CreateOpts{Name: "databaseA"},
 			},
 			Name:     "dbuser3",
 			Password: "secretsecret",
 		},
-		CreateOpts{
+		{
 			Databases: db.BatchCreateOpts{
-				db.CreateOpts{Name: "databaseB"},
-				db.CreateOpts{Name: "databaseC"},
+				{Name: "databaseB"},
+				{Name: "databaseC"},
 			},
 			Name:     "dbuser4",
 			Password: "secretsecret",
 		},
 	}
 
-	res := Create(fake.ServiceClient(), instanceID, opts)
+	res := users.Create(fake.ServiceClient(), instanceID, opts)
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -41,27 +42,27 @@
 	defer th.TeardownHTTP()
 	HandleList(t)
 
-	expectedUsers := []User{
-		User{
+	expectedUsers := []users.User{
+		{
 			Databases: []db.Database{
 				db.Database{Name: "databaseA"},
 			},
 			Name: "dbuser3",
 		},
-		User{
+		{
 			Databases: []db.Database{
-				db.Database{Name: "databaseB"},
-				db.Database{Name: "databaseC"},
+				{Name: "databaseB"},
+				{Name: "databaseC"},
 			},
 			Name: "dbuser4",
 		},
 	}
 
 	pages := 0
-	err := List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
+	err := users.List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
 		pages++
 
-		actual, err := ExtractUsers(page)
+		actual, err := users.ExtractUsers(page)
 		if err != nil {
 			return false, err
 		}
@@ -79,6 +80,6 @@
 	defer th.TeardownHTTP()
 	HandleDelete(t)
 
-	res := Delete(fake.ServiceClient(), instanceID, "{userName}")
+	res := users.Delete(fake.ServiceClient(), instanceID, "{userName}")
 	th.AssertNoErr(t, res.Err)
 }
