Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Side by Side Diff: appengine/cmd/dm/deps/ensure_attempt_test.go

Issue 1537883002: Initial distributor implementation (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-go@master
Patch Set: self review Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The LUCI Authors. All rights reserved. 1 // Copyright 2015 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package deps 5 package deps
6 6
7 import ( 7 import (
8 "testing" 8 "testing"
9 9
10 "github.com/luci/gae/service/datastore" 10 "github.com/luci/gae/service/datastore"
11 "github.com/luci/luci-go/appengine/cmd/dm/model" 11 "github.com/luci/luci-go/appengine/cmd/dm/model"
12 "github.com/luci/luci-go/appengine/tumble"
13 "github.com/luci/luci-go/common/api/dm/service/v1" 12 "github.com/luci/luci-go/common/api/dm/service/v1"
14 . "github.com/luci/luci-go/common/testing/assertions" 13 . "github.com/luci/luci-go/common/testing/assertions"
15 . "github.com/smartystreets/goconvey/convey" 14 . "github.com/smartystreets/goconvey/convey"
16 ) 15 )
17 16
18 func TestEnsureAttempt(t *testing.T) { 17 func TestEnsureAttempt(t *testing.T) {
19 t.Parallel() 18 t.Parallel()
20 19
21 Convey("EnsureGraphData (Ensuring attempts)", t, func() { 20 Convey("EnsureGraphData (Ensuring attempts)", t, func() {
22 » » ttest := &tumble.Testing{} 21 » » ttest, c, _, s := testSetup()
23 » » c := ttest.Context()
24 ds := datastore.Get(c) 22 ds := datastore.Get(c)
25 s := newDecoratedDeps()
26 23
27 Convey("bad", func() { 24 Convey("bad", func() {
28 Convey("no quest", func() { 25 Convey("no quest", func() {
29 _, err := s.EnsureGraphData(c, &dm.EnsureGraphDa taReq{ 26 _, err := s.EnsureGraphData(c, &dm.EnsureGraphDa taReq{
30 Attempts: dm.NewAttemptList(map[string][ ]uint32{"quest": {1}}), 27 Attempts: dm.NewAttemptList(map[string][ ]uint32{"quest": {1}}),
31 }) 28 })
32 So(err, ShouldBeRPCInvalidArgument, 29 So(err, ShouldBeRPCInvalidArgument,
33 `cannot create attempts for absent quest "quest"`) 30 `cannot create attempts for absent quest "quest"`)
34 }) 31 })
35 Convey("mismatched quest", func() { 32 Convey("mismatched quest", func() {
36 _, err := s.EnsureGraphData(c, &dm.EnsureGraphDa taReq{ 33 _, err := s.EnsureGraphData(c, &dm.EnsureGraphDa taReq{
37 » » » » » Quest: []*dm.Quest_Desc{dm.NewQuestDe sc("foof", "{}")}, 34 » » » » » Quest: []*dm.Quest_Desc{dm.NewQuestDe sc("fakeDistributor", "{}", nil)},
38 Attempts: dm.NewAttemptList(map[string][ ]uint32{"quest": {1}}), 35 Attempts: dm.NewAttemptList(map[string][ ]uint32{"quest": {1}}),
39 }) 36 })
40 So(err, ShouldErrLike, "must have a matching Att empts entry") 37 So(err, ShouldErrLike, "must have a matching Att empts entry")
41 }) 38 })
42 }) 39 })
43 40
44 Convey("good", func() { 41 Convey("good", func() {
45 » » » desc := dm.NewQuestDesc("swarming", `{"hi": "there"}`) 42 » » » desc := dm.NewQuestDesc("fakeDistributor", `{"hi": "ther e"}`, nil)
46 » » » q, err := model.NewQuest(c, desc) 43 » » » So(desc.Normalize(), ShouldBeNil)
47 » » » So(err, ShouldBeNil) 44 » » » q := model.NewQuest(c, desc)
48 rsp, err := s.EnsureGraphData(c, &dm.EnsureGraphDataReq{ 45 rsp, err := s.EnsureGraphData(c, &dm.EnsureGraphDataReq{
49 Quest: []*dm.Quest_Desc{desc}, 46 Quest: []*dm.Quest_Desc{desc},
50 Attempts: dm.NewAttemptList(map[string][]uint32{ q.ID: {1}}), 47 Attempts: dm.NewAttemptList(map[string][]uint32{ q.ID: {1}}),
51 }) 48 })
52 So(err, ShouldBeNil) 49 So(err, ShouldBeNil)
53 So(rsp.Accepted, ShouldBeTrue) 50 So(rsp.Accepted, ShouldBeTrue)
54 ttest.Drain(c) 51 ttest.Drain(c)
55 So(ds.Get(&model.Attempt{ID: *dm.NewAttemptID(q.ID, 1)}) , ShouldBeNil) 52 So(ds.Get(&model.Attempt{ID: *dm.NewAttemptID(q.ID, 1)}) , ShouldBeNil)
56 }) 53 })
57 54
58 }) 55 })
59 } 56 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698