move unit tests into 'testing' directories
diff --git a/openstack/compute/v2/servers/testing/doc.go b/openstack/compute/v2/servers/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/servers/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/servers/fixtures.go b/openstack/compute/v2/servers/testing/fixtures.go
similarity index 98%
rename from openstack/compute/v2/servers/fixtures.go
rename to openstack/compute/v2/servers/testing/fixtures.go
index 8b2c94d..b4fb7ff 100644
--- a/openstack/compute/v2/servers/fixtures.go
+++ b/openstack/compute/v2/servers/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package servers
+package testing
 
 import (
 	"fmt"
@@ -8,6 +6,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud"
+	"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	"github.com/gophercloud/gophercloud/testhelper/client"
 )
@@ -244,7 +243,7 @@
 
 var (
 	// ServerHerp is a Server struct that should correspond to the first result in ServerListBody.
-	ServerHerp = Server{
+	ServerHerp = servers.Server{
 		Status:  "ACTIVE",
 		Updated: "2014-09-25T13:10:10Z",
 		HostID:  "29d3c8c896a45aa4c34e52247875d7fefc3d94bbcc9f622b5d204362",
@@ -300,7 +299,7 @@
 	}
 
 	// ServerDerp is a Server struct that should correspond to the second server in ServerListBody.
-	ServerDerp = Server{
+	ServerDerp = servers.Server{
 		Status:  "ACTIVE",
 		Updated: "2014-09-25T13:04:49Z",
 		HostID:  "29d3c8c896a45aa4c34e52247875d7fefc3d94bbcc9f622b5d204362",
@@ -357,7 +356,7 @@
 )
 
 type CreateOptsWithCustomField struct {
-	CreateOpts
+	servers.CreateOpts
 	Foo string `json:"foo,omitempty"`
 }
 
@@ -618,19 +617,19 @@
 }
 
 // ListAddressesExpected represents an expected repsonse from a ListAddresses request.
-var ListAddressesExpected = map[string][]Address{
-	"public": []Address{
-		Address{
+var ListAddressesExpected = map[string][]servers.Address{
+	"public": []servers.Address{
+		{
 			Version: 4,
 			Address: "80.56.136.39",
 		},
-		Address{
+		{
 			Version: 6,
 			Address: "2001:4800:790e:510:be76:4eff:fe04:82a8",
 		},
 	},
-	"private": []Address{
-		Address{
+	"private": []servers.Address{
+		{
 			Version: 4,
 			Address: "10.880.3.154",
 		},
@@ -668,12 +667,12 @@
 }
 
 // ListNetworkAddressesExpected represents an expected repsonse from a ListAddressesByNetwork request.
-var ListNetworkAddressesExpected = []Address{
-	Address{
+var ListNetworkAddressesExpected = []servers.Address{
+	{
 		Version: 4,
 		Address: "50.56.176.35",
 	},
-	Address{
+	{
 		Version: 6,
 		Address: "2001:4800:780e:510:be76:4eff:fe04:84a8",
 	},
diff --git a/openstack/compute/v2/servers/requests_test.go b/openstack/compute/v2/servers/testing/requests_test.go
similarity index 74%
rename from openstack/compute/v2/servers/requests_test.go
rename to openstack/compute/v2/servers/testing/requests_test.go
index 9a5d701..7db6b93 100644
--- a/openstack/compute/v2/servers/requests_test.go
+++ b/openstack/compute/v2/servers/testing/requests_test.go
@@ -1,4 +1,4 @@
-package servers
+package testing
 
 import (
 	"encoding/base64"
@@ -6,6 +6,7 @@
 	"net/http"
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
 	"github.com/gophercloud/gophercloud/pagination"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	"github.com/gophercloud/gophercloud/testhelper/client"
@@ -17,10 +18,10 @@
 	HandleServerListSuccessfully(t)
 
 	pages := 0
-	err := List(client.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+	err := servers.List(client.ServiceClient(), servers.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
 		pages++
 
-		actual, err := ExtractServers(page)
+		actual, err := servers.ExtractServers(page)
 		if err != nil {
 			return false, err
 		}
@@ -46,9 +47,9 @@
 	defer th.TeardownHTTP()
 	HandleServerListSuccessfully(t)
 
-	allPages, err := List(client.ServiceClient(), ListOpts{}).AllPages()
+	allPages, err := servers.List(client.ServiceClient(), servers.ListOpts{}).AllPages()
 	th.AssertNoErr(t, err)
-	actual, err := ExtractServers(allPages)
+	actual, err := servers.ExtractServers(allPages)
 	th.AssertNoErr(t, err)
 	th.CheckDeepEquals(t, ServerHerp, actual[0])
 	th.CheckDeepEquals(t, ServerDerp, actual[1])
@@ -59,7 +60,7 @@
 	defer th.TeardownHTTP()
 	HandleServerCreationSuccessfully(t, SingleServerBody)
 
-	actual, err := Create(client.ServiceClient(), CreateOpts{
+	actual, err := servers.Create(client.ServiceClient(), servers.CreateOpts{
 		Name:      "derp",
 		ImageRef:  "f90f6034-2570-4974-8351-6b49732ef2eb",
 		FlavorRef: "1",
@@ -74,8 +75,8 @@
 	defer th.TeardownHTTP()
 	HandleServerCreationWithCustomFieldSuccessfully(t, SingleServerBody)
 
-	actual, err := Create(client.ServiceClient(), CreateOptsWithCustomField{
-		CreateOpts: CreateOpts{
+	actual, err := servers.Create(client.ServiceClient(), CreateOptsWithCustomField{
+		CreateOpts: servers.CreateOpts{
 			Name:      "derp",
 			ImageRef:  "f90f6034-2570-4974-8351-6b49732ef2eb",
 			FlavorRef: "1",
@@ -92,7 +93,7 @@
 	defer th.TeardownHTTP()
 	HandleServerDeletionSuccessfully(t)
 
-	res := Delete(client.ServiceClient(), "asdfasdfasdf")
+	res := servers.Delete(client.ServiceClient(), "asdfasdfasdf")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -101,7 +102,7 @@
 	defer th.TeardownHTTP()
 	HandleServerForceDeletionSuccessfully(t)
 
-	res := ForceDelete(client.ServiceClient(), "asdfasdfasdf")
+	res := servers.ForceDelete(client.ServiceClient(), "asdfasdfasdf")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -111,7 +112,7 @@
 	HandleServerGetSuccessfully(t)
 
 	client := client.ServiceClient()
-	actual, err := Get(client, "1234asdf").Extract()
+	actual, err := servers.Get(client, "1234asdf").Extract()
 	if err != nil {
 		t.Fatalf("Unexpected Get error: %v", err)
 	}
@@ -125,7 +126,7 @@
 	HandleServerUpdateSuccessfully(t)
 
 	client := client.ServiceClient()
-	actual, err := Update(client, "1234asdf", UpdateOpts{Name: "new-name"}).Extract()
+	actual, err := servers.Update(client, "1234asdf", servers.UpdateOpts{Name: "new-name"}).Extract()
 	if err != nil {
 		t.Fatalf("Unexpected Update error: %v", err)
 	}
@@ -138,7 +139,7 @@
 	defer th.TeardownHTTP()
 	HandleAdminPasswordChangeSuccessfully(t)
 
-	res := ChangeAdminPassword(client.ServiceClient(), "1234asdf", "new-password")
+	res := servers.ChangeAdminPassword(client.ServiceClient(), "1234asdf", "new-password")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -147,7 +148,7 @@
 	defer th.TeardownHTTP()
 	HandlePasswordGetSuccessfully(t)
 
-	res := GetPassword(client.ServiceClient(), "1234asdf")
+	res := servers.GetPassword(client.ServiceClient(), "1234asdf")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -156,8 +157,8 @@
 	defer th.TeardownHTTP()
 	HandleRebootSuccessfully(t)
 
-	res := Reboot(client.ServiceClient(), "1234asdf", &RebootOpts{
-		Type: SoftReboot,
+	res := servers.Reboot(client.ServiceClient(), "1234asdf", &servers.RebootOpts{
+		Type: servers.SoftReboot,
 	})
 	th.AssertNoErr(t, res.Err)
 }
@@ -167,14 +168,14 @@
 	defer th.TeardownHTTP()
 	HandleRebuildSuccessfully(t, SingleServerBody)
 
-	opts := RebuildOpts{
+	opts := servers.RebuildOpts{
 		Name:       "new-name",
 		AdminPass:  "swordfish",
 		ImageID:    "http://104.130.131.164:8774/fcad67a6189847c4aecfa3c81a05783b/images/f90f6034-2570-4974-8351-6b49732ef2eb",
 		AccessIPv4: "1.2.3.4",
 	}
 
-	actual, err := Rebuild(client.ServiceClient(), "1234asdf", opts).Extract()
+	actual, err := servers.Rebuild(client.ServiceClient(), "1234asdf", opts).Extract()
 	th.AssertNoErr(t, err)
 
 	th.CheckDeepEquals(t, ServerDerp, *actual)
@@ -192,7 +193,7 @@
 		w.WriteHeader(http.StatusAccepted)
 	})
 
-	res := Resize(client.ServiceClient(), "1234asdf", ResizeOpts{FlavorRef: "2"})
+	res := servers.Resize(client.ServiceClient(), "1234asdf", servers.ResizeOpts{FlavorRef: "2"})
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -208,7 +209,7 @@
 		w.WriteHeader(http.StatusNoContent)
 	})
 
-	res := ConfirmResize(client.ServiceClient(), "1234asdf")
+	res := servers.ConfirmResize(client.ServiceClient(), "1234asdf")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -224,7 +225,7 @@
 		w.WriteHeader(http.StatusAccepted)
 	})
 
-	res := RevertResize(client.ServiceClient(), "1234asdf")
+	res := servers.RevertResize(client.ServiceClient(), "1234asdf")
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -234,7 +235,7 @@
 
 	HandleServerRescueSuccessfully(t)
 
-	res := Rescue(client.ServiceClient(), "1234asdf", RescueOpts{
+	res := servers.Rescue(client.ServiceClient(), "1234asdf", servers.RescueOpts{
 		AdminPass: "1234567890",
 	})
 	th.AssertNoErr(t, res.Err)
@@ -249,7 +250,7 @@
 	HandleMetadatumGetSuccessfully(t)
 
 	expected := map[string]string{"foo": "bar"}
-	actual, err := Metadatum(client.ServiceClient(), "1234asdf", "foo").Extract()
+	actual, err := servers.Metadatum(client.ServiceClient(), "1234asdf", "foo").Extract()
 	th.AssertNoErr(t, err)
 	th.AssertDeepEquals(t, expected, actual)
 }
@@ -261,7 +262,7 @@
 	HandleMetadatumCreateSuccessfully(t)
 
 	expected := map[string]string{"foo": "bar"}
-	actual, err := CreateMetadatum(client.ServiceClient(), "1234asdf", MetadatumOpts{"foo": "bar"}).Extract()
+	actual, err := servers.CreateMetadatum(client.ServiceClient(), "1234asdf", servers.MetadatumOpts{"foo": "bar"}).Extract()
 	th.AssertNoErr(t, err)
 	th.AssertDeepEquals(t, expected, actual)
 }
@@ -272,7 +273,7 @@
 
 	HandleMetadatumDeleteSuccessfully(t)
 
-	err := DeleteMetadatum(client.ServiceClient(), "1234asdf", "foo").ExtractErr()
+	err := servers.DeleteMetadatum(client.ServiceClient(), "1234asdf", "foo").ExtractErr()
 	th.AssertNoErr(t, err)
 }
 
@@ -283,7 +284,7 @@
 	HandleMetadataGetSuccessfully(t)
 
 	expected := map[string]string{"foo": "bar", "this": "that"}
-	actual, err := Metadata(client.ServiceClient(), "1234asdf").Extract()
+	actual, err := servers.Metadata(client.ServiceClient(), "1234asdf").Extract()
 	th.AssertNoErr(t, err)
 	th.AssertDeepEquals(t, expected, actual)
 }
@@ -295,7 +296,7 @@
 	HandleMetadataResetSuccessfully(t)
 
 	expected := map[string]string{"foo": "bar", "this": "that"}
-	actual, err := ResetMetadata(client.ServiceClient(), "1234asdf", MetadataOpts{
+	actual, err := servers.ResetMetadata(client.ServiceClient(), "1234asdf", servers.MetadataOpts{
 		"foo":  "bar",
 		"this": "that",
 	}).Extract()
@@ -310,7 +311,7 @@
 	HandleMetadataUpdateSuccessfully(t)
 
 	expected := map[string]string{"foo": "baz", "this": "those"}
-	actual, err := UpdateMetadata(client.ServiceClient(), "1234asdf", MetadataOpts{
+	actual, err := servers.UpdateMetadata(client.ServiceClient(), "1234asdf", servers.MetadataOpts{
 		"foo":  "baz",
 		"this": "those",
 	}).Extract()
@@ -325,10 +326,10 @@
 
 	expected := ListAddressesExpected
 	pages := 0
-	err := ListAddresses(client.ServiceClient(), "asdfasdfasdf").EachPage(func(page pagination.Page) (bool, error) {
+	err := servers.ListAddresses(client.ServiceClient(), "asdfasdfasdf").EachPage(func(page pagination.Page) (bool, error) {
 		pages++
 
-		actual, err := ExtractAddresses(page)
+		actual, err := servers.ExtractAddresses(page)
 		th.AssertNoErr(t, err)
 
 		if len(actual) != 2 {
@@ -349,10 +350,10 @@
 
 	expected := ListNetworkAddressesExpected
 	pages := 0
-	err := ListAddressesByNetwork(client.ServiceClient(), "asdfasdfasdf", "public").EachPage(func(page pagination.Page) (bool, error) {
+	err := servers.ListAddressesByNetwork(client.ServiceClient(), "asdfasdfasdf", "public").EachPage(func(page pagination.Page) (bool, error) {
 		pages++
 
-		actual, err := ExtractNetworkAddresses(page)
+		actual, err := servers.ExtractNetworkAddresses(page)
 		th.AssertNoErr(t, err)
 
 		if len(actual) != 2 {
@@ -371,7 +372,7 @@
 	defer th.TeardownHTTP()
 	HandleCreateServerImageSuccessfully(t)
 
-	_, err := CreateImage(client.ServiceClient(), "serverimage", CreateImageOpts{Name: "test"}).ExtractImageID()
+	_, err := servers.CreateImage(client.ServiceClient(), "serverimage", servers.CreateImageOpts{Name: "test"}).ExtractImageID()
 	th.AssertNoErr(t, err)
 }
 
@@ -379,8 +380,8 @@
 	name := "/etc/test"
 	contents := []byte("asdfasdf")
 
-	personality := Personality{
-		&File{
+	personality := servers.Personality{
+		&servers.File{
 			Path:     name,
 			Contents: contents,
 		},
diff --git a/openstack/compute/v2/servers/results_test.go b/openstack/compute/v2/servers/testing/results_test.go
similarity index 93%
rename from openstack/compute/v2/servers/results_test.go
rename to openstack/compute/v2/servers/testing/results_test.go
index 5b56055..e5334f0 100644
--- a/openstack/compute/v2/servers/results_test.go
+++ b/openstack/compute/v2/servers/testing/results_test.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package servers
+package testing
 
 import (
 	"crypto/rsa"
@@ -9,6 +7,7 @@
 	"testing"
 
 	"github.com/gophercloud/gophercloud"
+	"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	"golang.org/x/crypto/ssh"
 )
@@ -21,7 +20,7 @@
 	if err != nil {
 		t.Fatalf("%s", err)
 	}
-	resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+	resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
 
 	pwd, err := resp.ExtractPassword(nil)
 	th.AssertEquals(t, pwd, "")
@@ -38,7 +37,7 @@
 	if err != nil {
 		t.Fatalf("%s", err)
 	}
-	resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+	resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
 
 	pwd, err := resp.ExtractPassword(nil)
 	th.AssertNoErr(t, err)
@@ -91,7 +90,7 @@
 	if err != nil {
 		t.Fatalf("%s", err)
 	}
-	resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+	resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
 
 	pwd, err := resp.ExtractPassword(privateKey.(*rsa.PrivateKey))
 	th.AssertNoErr(t, err)