Encapsulate Personality. Encode contents for user
diff --git a/openstack/compute/v2/servers/requests_test.go b/openstack/compute/v2/servers/requests_test.go
index 62b89e0..83fcdb0 100644
--- a/openstack/compute/v2/servers/requests_test.go
+++ b/openstack/compute/v2/servers/requests_test.go
@@ -1,6 +1,7 @@
 package servers
 
 import (
+	"encoding/base64"
 	"net/http"
 	"testing"
 
@@ -325,3 +326,25 @@
 	th.AssertNoErr(t, err)
 	th.CheckEquals(t, 1, pages)
 }
+
+func TestMarshalPersonality(t *testing.T) {
+	name := "test"
+	contents := []byte("asdfasdf")
+
+	personality := Personality{
+		File{
+			Path:     name,
+			Contents: contents,
+		},
+	}
+
+	actual := personality.Marshal()
+
+	if actual[0]["path"] != name {
+		t.Fatal("file path incorrect")
+	}
+
+	if actual[0]["contents"] != base64.StdEncoding.EncodeToString(contents) {
+		t.Fatal("file contents incorrect")
+	}
+}