Index: impl/memory/raw_datastore_test.go |
diff --git a/memory/raw_datastore_test.go b/impl/memory/raw_datastore_test.go |
similarity index 90% |
rename from memory/raw_datastore_test.go |
rename to impl/memory/raw_datastore_test.go |
index 752de54f0af6bf5a4692fa52eb169a856a4738e8..829b3b0fc4cb20351de79196fc6450e6a825d4f8 100644 |
--- a/memory/raw_datastore_test.go |
+++ b/impl/memory/raw_datastore_test.go |
@@ -9,8 +9,7 @@ import ( |
"math" |
"testing" |
- "github.com/luci/gae" |
- "github.com/luci/gae/helper" |
+ rdsS "github.com/luci/gae/service/rawdatastore" |
. "github.com/smartystreets/goconvey/convey" |
"golang.org/x/net/context" |
) |
@@ -20,7 +19,7 @@ func TestDatastoreKinder(t *testing.T) { |
Convey("Datastore keys", t, func() { |
c := Use(context.Background()) |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
Convey("implements DSNewKeyer", func() { |
@@ -34,30 +33,30 @@ func TestDatastoreKinder(t *testing.T) { |
So(key.AppID(), ShouldEqual, "dev~app") |
So(key.Namespace(), ShouldEqual, "") |
So(key.String(), ShouldEqual, "/nerd,stringID") |
- So(helper.DSKeyIncomplete(key), ShouldBeFalse) |
- So(helper.DSKeyValid(key, "", false), ShouldBeTrue) |
+ So(rdsS.KeyIncomplete(key), ShouldBeFalse) |
+ So(rdsS.KeyValid(key, "", false), ShouldBeTrue) |
}) |
}) |
}) |
} |
-func testGetMeta(c context.Context, k gae.DSKey) int64 { |
- rds := gae.GetRDS(c) |
- k = rds.NewKey("__entity_group__", "", 1, helper.DSKeyRoot(k)) |
- pmap := gae.DSPropertyMap{} |
+func testGetMeta(c context.Context, k rdsS.Key) int64 { |
+ rds := rdsS.Get(c) |
+ k = rds.NewKey("__entity_group__", "", 1, rdsS.KeyRoot(k)) |
+ pmap := rdsS.PropertyMap{} |
rds.Get(k, pmap) |
return pmap["__version__"][0].Value().(int64) |
} |
-var pls = helper.GetPLS |
+var pls = rdsS.GetPLS |
func TestDatastoreSingleReadWriter(t *testing.T) { |
t.Parallel() |
Convey("Datastore single reads and writes", t, func() { |
c := Use(context.Background()) |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
Convey("implements DSSingleReadWriter", func() { |
@@ -67,15 +66,15 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("invalid keys break", func() { |
k := rds.NewKey("Foo", "", 0, nil) |
- So(rds.Get(k, nil), ShouldEqual, gae.ErrDSInvalidKey) |
+ So(rds.Get(k, nil), ShouldEqual, rdsS.ErrInvalidKey) |
_, err := rds.Put(rds.NewKey("Foo", "", 0, k), pls(&Foo{})) |
- So(err, ShouldEqual, gae.ErrDSInvalidKey) |
+ So(err, ShouldEqual, rdsS.ErrInvalidKey) |
}) |
Convey("getting objects that DNE is an error", func() { |
k := rds.NewKey("Foo", "", 1, nil) |
- So(rds.Get(k, nil), ShouldEqual, gae.ErrDSNoSuchEntity) |
+ So(rds.Get(k, nil), ShouldEqual, rdsS.ErrNoSuchEntity) |
}) |
Convey("Can Put stuff", func() { |
@@ -97,12 +96,12 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
So(err, ShouldBeNil) |
err = rds.Get(k, pls(newFoo)) |
- So(err, ShouldEqual, gae.ErrDSNoSuchEntity) |
+ So(err, ShouldEqual, rdsS.ErrNoSuchEntity) |
}) |
}) |
Convey("Deleteing with a bogus key is bad", func() { |
err := rds.Delete(rds.NewKey("Foo", "wat", 100, nil)) |
- So(err, ShouldEqual, gae.ErrDSInvalidKey) |
+ So(err, ShouldEqual, rdsS.ErrInvalidKey) |
}) |
Convey("Deleteing a DNE entity is fine", func() { |
err := rds.Delete(rds.NewKey("Foo", "wat", 0, nil)) |
@@ -112,8 +111,8 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("with multiple puts", func() { |
So(testGetMeta(c, k), ShouldEqual, 1) |
- keys := []gae.DSKey{} |
- plss := []gae.DSPropertyLoadSaver{} |
+ keys := []rdsS.Key{} |
+ plss := []rdsS.PropertyLoadSaver{} |
pkey := k |
for i := 0; i < 10; i++ { |
@@ -145,15 +144,15 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
}) |
Convey("can GetMulti", func() { |
- plss := make([]gae.DSPropertyLoadSaver, len(keys)) |
+ plss := make([]rdsS.PropertyLoadSaver, len(keys)) |
for i := range plss { |
- plss[i] = gae.DSPropertyMap{} |
+ plss[i] = rdsS.PropertyMap{} |
} |
err := rds.GetMulti(keys, plss) |
So(err, ShouldBeNil) |
for _, pls := range plss { |
- So(pls.(gae.DSPropertyMap), ShouldResemble, gae.DSPropertyMap{ |
- "Val": {gae.MkDSProperty(10)}, |
+ So(pls.(rdsS.PropertyMap), ShouldResemble, rdsS.PropertyMap{ |
+ "Val": {rdsS.MkProperty(10)}, |
}) |
} |
}) |
@@ -174,7 +173,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("can Put new entity groups", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
f1 := &Foo{Val: 100} |
@@ -188,7 +187,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
So(k.String(), ShouldEqual, "/Foo,3") |
return nil |
- }, &gae.DSTransactionOptions{XG: true}) |
+ }, &rdsS.TransactionOptions{XG: true}) |
So(err, ShouldBeNil) |
f := &Foo{} |
@@ -202,7 +201,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("can Put new entities in a current group", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
par := k |
@@ -232,19 +231,19 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("Deletes work too", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
So(rds.Delete(k), ShouldBeNil) |
return nil |
}, nil) |
So(err, ShouldBeNil) |
- So(rds.Get(k, nil), ShouldEqual, gae.ErrDSNoSuchEntity) |
+ So(rds.Get(k, nil), ShouldEqual, rdsS.ErrNoSuchEntity) |
}) |
Convey("A Get counts against your group count", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
- So(rds.Get(rds.NewKey("Foo", "", 20, nil), nil), ShouldEqual, gae.ErrDSNoSuchEntity) |
+ rds := rdsS.Get(c) |
+ So(rds.Get(rds.NewKey("Foo", "", 20, nil), nil), ShouldEqual, rdsS.ErrNoSuchEntity) |
So(rds.Get(k, nil).Error(), ShouldContainSubstring, "cross-group") |
return nil |
}, nil) |
@@ -253,7 +252,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("Get takes a snapshot", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- txnDS := gae.GetRDS(c) |
+ txnDS := rdsS.Get(c) |
So(txnDS, ShouldNotBeNil) |
So(txnDS.Get(k, pls(f)), ShouldBeNil) |
@@ -279,7 +278,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("and snapshots are consistent even after Puts", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- txnDS := gae.GetRDS(c) |
+ txnDS := rdsS.Get(c) |
So(txnDS, ShouldNotBeNil) |
f := &Foo{} |
@@ -314,19 +313,19 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("Reusing a transaction context is bad news", func() { |
k := rds.NewKey("Foo", "", 1, nil) |
- txnDS := gae.RawDatastore(nil) |
+ txnDS := rdsS.Interface(nil) |
err := rds.RunInTransaction(func(c context.Context) error { |
- txnDS = gae.GetRDS(c) |
- So(txnDS.Get(k, gae.DSPropertyMap{}), ShouldBeNil) |
+ txnDS = rdsS.Get(c) |
+ So(txnDS.Get(k, rdsS.PropertyMap{}), ShouldBeNil) |
return nil |
}, nil) |
So(err, ShouldBeNil) |
- So(txnDS.Get(k, gae.DSPropertyMap{}).Error(), ShouldContainSubstring, "expired") |
+ So(txnDS.Get(k, rdsS.PropertyMap{}).Error(), ShouldContainSubstring, "expired") |
}) |
Convey("Nested transactions are rejected", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- err := gae.GetRDS(c).RunInTransaction(func(c context.Context) error { |
+ err := rdsS.Get(c).RunInTransaction(func(c context.Context) error { |
panic("noooo") |
}, nil) |
So(err.Error(), ShouldContainSubstring, "nested transactions") |
@@ -344,13 +343,13 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
// |
// That said... I'm not sure if there's really a semantic difference. |
err := rds.RunInTransaction(func(c context.Context) error { |
- txnDS := gae.GetRDS(c) |
+ txnDS := rdsS.Get(c) |
f := &Foo{Val: 21} |
_, err = txnDS.Put(k, pls(f)) |
So(err, ShouldBeNil) |
err := rds.RunInTransaction(func(c context.Context) error { |
- txnDS := gae.GetRDS(c) |
+ txnDS := rdsS.Get(c) |
f := &Foo{Val: 27} |
_, err := txnDS.Put(k, pls(f)) |
So(err, ShouldBeNil) |
@@ -370,7 +369,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("XG", func() { |
Convey("Modifying two groups with XG=false is invalid", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
f := &Foo{Val: 200} |
_, err := rds.Put(k, pls(f)) |
So(err, ShouldBeNil) |
@@ -384,7 +383,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("Modifying >25 groups with XG=true is invald", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
for i := int64(1); i < 26; i++ { |
k := rds.NewKey("Foo", "", i, nil) |
f := &Foo{Val: 200} |
@@ -395,7 +394,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
_, err := rds.Put(rds.NewKey("Foo", "", 27, nil), pls(f)) |
So(err.Error(), ShouldContainSubstring, "too many entity groups") |
return err |
- }, &gae.DSTransactionOptions{XG: true}) |
+ }, &rdsS.TransactionOptions{XG: true}) |
So(err.Error(), ShouldContainSubstring, "too many entity groups") |
}) |
}) |
@@ -403,7 +402,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("Errors and panics", func() { |
Convey("returning an error aborts", func() { |
err := rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
f := &Foo{Val: 200} |
_, err := rds.Put(k, pls(f)) |
So(err, ShouldBeNil) |
@@ -420,7 +419,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) { |
Convey("panicing aborts", func() { |
So(func() { |
rds.RunInTransaction(func(c context.Context) error { |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
f := &Foo{Val: 200} |
_, err := rds.Put(k, pls(f)) |
So(err, ShouldBeNil) |
@@ -446,7 +445,7 @@ const IntIs32Bits = int64(MaxInt) < math.MaxInt64 |
func TestDatastoreQueryer(t *testing.T) { |
Convey("Datastore Query suport", t, func() { |
c := Use(context.Background()) |
- rds := gae.GetRDS(c) |
+ rds := rdsS.Get(c) |
So(rds, ShouldNotBeNil) |
Convey("can create good queries", func() { |
@@ -538,7 +537,7 @@ func TestDatastoreQueryer(t *testing.T) { |
q := q.Ancestor(rds.NewKey("Goop", "wat", 10, nil)) |
So(q, ShouldNotBeNil) |
qi := q.(*queryImpl).checkCorrectness("", false) |
- So(qi.err, ShouldEqual, gae.ErrDSInvalidKey) |
+ So(qi.err, ShouldEqual, rdsS.ErrInvalidKey) |
}) |
Convey("nil ancestors", func() { |
qi := q.Ancestor(nil).(*queryImpl).checkCorrectness("", false) |
@@ -547,7 +546,7 @@ func TestDatastoreQueryer(t *testing.T) { |
Convey("Bad key filters", func() { |
q := q.Filter("__key__ =", rds.NewKey("Goop", "wat", 10, nil)) |
qi := q.(*queryImpl).checkCorrectness("", false) |
- So(qi.err, ShouldEqual, gae.ErrDSInvalidKey) |
+ So(qi.err, ShouldEqual, rdsS.ErrInvalidKey) |
}) |
Convey("non-ancestor queries in a transaction", func() { |
qi := q.(*queryImpl).checkCorrectness("", true) |