Index: impl/prod/everything_test.go |
diff --git a/impl/prod/raw_datastore_type_converter_test.go b/impl/prod/everything_test.go |
similarity index 67% |
rename from impl/prod/raw_datastore_type_converter_test.go |
rename to impl/prod/everything_test.go |
index 77f341e43f4fcc8d3e7f4709a8db849c33f7c558..53024339c1d8df023e4ab33c0e0769d40e307435 100644 |
--- a/impl/prod/raw_datastore_type_converter_test.go |
+++ b/impl/prod/everything_test.go |
@@ -11,14 +11,16 @@ import ( |
"time" |
"github.com/luci/gae/service/blobstore" |
- dstore "github.com/luci/gae/service/datastore" |
+ "github.com/luci/gae/service/datastore" |
+ "github.com/luci/gae/service/info" |
. "github.com/smartystreets/goconvey/convey" |
+ "golang.org/x/net/context" |
"google.golang.org/appengine/aetest" |
) |
var ( |
- mp = dstore.MkProperty |
- mpNI = dstore.MkPropertyNI |
+ mp = datastore.MkProperty |
+ mpNI = datastore.MkPropertyNI |
) |
type TestStruct struct { |
@@ -29,21 +31,37 @@ type TestStruct struct { |
ValueS []string |
ValueF []float64 |
ValueBS [][]byte // "ByteString" |
- ValueK []*dstore.Key |
+ ValueK []*datastore.Key |
ValueBK []blobstore.Key |
- ValueGP []dstore.GeoPoint |
+ ValueGP []datastore.GeoPoint |
} |
func TestBasicDatastore(t *testing.T) { |
t.Parallel() |
Convey("basic", t, func() { |
- ctx, closer, err := aetest.NewContext() |
+ inst, err := aetest.NewInstance(&aetest.Options{ |
+ StronglyConsistentDatastore: true, |
+ }) |
+ So(err, ShouldBeNil) |
+ defer inst.Close() |
+ |
+ req, err := inst.NewRequest("GET", "/", nil) |
So(err, ShouldBeNil) |
- defer closer() |
- ctx = Use(ctx) |
- ds := dstore.Get(ctx) |
+ ctx := Use(context.Background(), req) |
+ ds := datastore.Get(ctx) |
+ inf := info.Get(ctx) |
+ |
+ Convey("Can probe/change Namespace", func() { |
+ So(inf.GetNamespace(), ShouldEqual, "") |
+ ctx, err = inf.Namespace("wat") |
+ So(err, ShouldBeNil) |
+ inf = info.Get(ctx) |
+ So(inf.GetNamespace(), ShouldEqual, "wat") |
+ ds = datastore.Get(ctx) |
+ So(ds.MakeKey("Hello", "world").Namespace(), ShouldEqual, "wat") |
+ }) |
Convey("Can Put/Get", func() { |
orig := TestStruct{ |
@@ -57,14 +75,14 @@ func TestBasicDatastore(t *testing.T) { |
[]byte("world"), |
[]byte("zurple"), |
}, |
- ValueK: []*dstore.Key{ |
+ ValueK: []*datastore.Key{ |
ds.NewKey("Something", "Cool", 0, nil), |
ds.NewKey("Something", "", 1, nil), |
ds.NewKey("Something", "Recursive", 0, |
ds.NewKey("Parent", "", 2, nil)), |
}, |
ValueBK: []blobstore.Key{"bellow", "hello"}, |
- ValueGP: []dstore.GeoPoint{ |
+ ValueGP: []datastore.GeoPoint{ |
{Lat: 120.7, Lng: 95.5}, |
}, |
} |
@@ -78,8 +96,8 @@ func TestBasicDatastore(t *testing.T) { |
time.Sleep(time.Second) |
Convey("Can query", func() { |
- q := dstore.NewQuery("TestStruct") |
- ds.Run(q, func(ts *TestStruct, _ dstore.CursorCB) bool { |
+ q := datastore.NewQuery("TestStruct") |
+ ds.Run(q, func(ts *TestStruct, _ datastore.CursorCB) bool { |
So(*ts, ShouldResemble, orig) |
return true |
}) |
@@ -89,10 +107,10 @@ func TestBasicDatastore(t *testing.T) { |
}) |
Convey("Can project", func() { |
- q := dstore.NewQuery("TestStruct").Project("ValueS") |
- rslts := []dstore.PropertyMap{} |
+ q := datastore.NewQuery("TestStruct").Project("ValueS") |
+ rslts := []datastore.PropertyMap{} |
So(ds.GetAll(q, &rslts), ShouldBeNil) |
- So(rslts, ShouldResemble, []dstore.PropertyMap{ |
+ So(rslts, ShouldResemble, []datastore.PropertyMap{ |
{ |
"$key": {mpNI(ds.KeyForObj(&orig))}, |
"ValueS": {mp("hello")}, |
@@ -103,10 +121,10 @@ func TestBasicDatastore(t *testing.T) { |
}, |
}) |
- q = dstore.NewQuery("TestStruct").Project("ValueBS") |
- rslts = []dstore.PropertyMap{} |
+ q = datastore.NewQuery("TestStruct").Project("ValueBS") |
+ rslts = []datastore.PropertyMap{} |
So(ds.GetAll(q, &rslts), ShouldBeNil) |
- So(rslts, ShouldResemble, []dstore.PropertyMap{ |
+ So(rslts, ShouldResemble, []datastore.PropertyMap{ |
{ |
"$key": {mpNI(ds.KeyForObj(&orig))}, |
"ValueBS": {mp("allo")}, |
@@ -133,7 +151,7 @@ func TestBasicDatastore(t *testing.T) { |
Convey("Can Put/Get (time)", func() { |
// time comparisons in Go are wonky, so this is pulled out |
- pm := dstore.PropertyMap{ |
+ pm := datastore.PropertyMap{ |
"$key": {mpNI(ds.NewKey("Something", "value", 0, nil))}, |
"Time": { |
mp(time.Date(1938, time.January, 1, 1, 1, 1, 1, time.UTC)), |
@@ -142,28 +160,28 @@ func TestBasicDatastore(t *testing.T) { |
} |
So(ds.Put(&pm), ShouldBeNil) |
- rslt := dstore.PropertyMap{} |
+ rslt := datastore.PropertyMap{} |
rslt.SetMeta("key", ds.KeyForObj(pm)) |
So(ds.Get(&rslt), ShouldBeNil) |
So(pm["Time"][0].Value(), ShouldResemble, rslt["Time"][0].Value()) |
- q := dstore.NewQuery("Something").Project("Time") |
- all := []dstore.PropertyMap{} |
+ q := datastore.NewQuery("Something").Project("Time") |
+ all := []datastore.PropertyMap{} |
So(ds.GetAll(q, &all), ShouldBeNil) |
So(len(all), ShouldEqual, 2) |
prop := all[0]["Time"][0] |
- So(prop.Type(), ShouldEqual, dstore.PTInt) |
+ So(prop.Type(), ShouldEqual, datastore.PTInt) |
- tval, err := prop.Project(dstore.PTTime) |
+ tval, err := prop.Project(datastore.PTTime) |
So(err, ShouldBeNil) |
So(tval, ShouldResemble, time.Time{}) |
- tval, err = all[1]["Time"][0].Project(dstore.PTTime) |
+ tval, err = all[1]["Time"][0].Project(datastore.PTTime) |
So(err, ShouldBeNil) |
So(tval, ShouldResemble, pm["Time"][0].Value()) |
- ent := dstore.PropertyMap{ |
+ ent := datastore.PropertyMap{ |
"$key": {mpNI(ds.MakeKey("Something", "value"))}, |
} |
So(ds.Get(&ent), ShouldBeNil) |