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

Side by Side Diff: scheduler/appengine/engine/engine_test.go

Issue 2993793003: [scheduler]: ACLs phase 3 - require ACLs specs for each Job/Trigger. (Closed)
Patch Set: Updated patchset dependency Created 3 years, 4 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
« no previous file with comments | « scheduler/appengine/acl/acl_test.go ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The LUCI Authors. 1 // Copyright 2015 The LUCI Authors.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 e, _ := newTestEngine() 80 e, _ := newTestEngine()
81 81
82 // Doing nothing. 82 // Doing nothing.
83 So(e.UpdateProjectJobs(c, "abc", []catalog.Definition{}), Should BeNil) 83 So(e.UpdateProjectJobs(c, "abc", []catalog.Definition{}), Should BeNil)
84 So(allJobs(c), ShouldResemble, []Job{}) 84 So(allJobs(c), ShouldResemble, []Job{})
85 85
86 // Adding a new job (ticks every 5 sec). 86 // Adding a new job (ticks every 5 sec).
87 So(e.UpdateProjectJobs(c, "abc", []catalog.Definition{ 87 So(e.UpdateProjectJobs(c, "abc", []catalog.Definition{
88 { 88 {
89 JobID: "abc/1", 89 JobID: "abc/1",
90 Revision: "rev1",
91 Schedule: "*/5 * * * * * *",
92 }}), ShouldBeNil)
93 So(allJobs(c), ShouldResemble, []Job{
94 {
95 JobID: "abc/1",
96 ProjectID: "abc",
97 Revision: "rev1",
98 Enabled: true,
99 Schedule: "*/5 * * * * * *",
100 State: JobState{
101 State: "SCHEDULED",
102 TickNonce: 6278013164014963328,
103 TickTime: epoch.Add(5 * time.Second),
104 },
105 },
106 })
107
108 // TODO(tandrii): delete and update above definition after no-AC L -> ACL transition.
109 // Simulate ACL version roll without change of project config.
110 So(e.UpdateProjectJobs(c, "abc", []catalog.Definition{
111 {
112 JobID: "abc/1",
113 Revision: "rev1", 90 Revision: "rev1",
114 Schedule: "*/5 * * * * * *", 91 Schedule: "*/5 * * * * * *",
115 Acls: acl.GrantsByRole{Readers: []string{"gr oup:r"}, Owners: []string{"groups:o"}}, 92 Acls: acl.GrantsByRole{Readers: []string{"gr oup:r"}, Owners: []string{"groups:o"}},
116 }}), ShouldBeNil) 93 }}), ShouldBeNil)
117 So(allJobs(c), ShouldResemble, []Job{ 94 So(allJobs(c), ShouldResemble, []Job{
118 { 95 {
119 JobID: "abc/1", 96 JobID: "abc/1",
120 ProjectID: "abc", 97 ProjectID: "abc",
121 Revision: "rev1", 98 Revision: "rev1",
122 Enabled: true, 99 Enabled: true,
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 So(err, ShouldBeNil) 542 So(err, ShouldBeNil)
566 543
567 So(newer, ShouldBeLessThan, older) 544 So(newer, ShouldBeLessThan, older)
568 }) 545 })
569 } 546 }
570 547
571 func TestQueries(t *testing.T) { 548 func TestQueries(t *testing.T) {
572 Convey("with mock data", t, func() { 549 Convey("with mock data", t, func() {
573 c := newTestContext(epoch) 550 c := newTestContext(epoch)
574 e, _ := newTestEngine() 551 e, _ := newTestEngine()
575 » » // TODO(tandrii): remove aclDefault once all Jobs have ACLs. 552 » » aclPublic := acl.GrantsByRole{Readers: []string{"group:all"}, Ow ners: []string{"group:administrators"}}
576 » » aclDefault := acl.GrantsByRole{}
577 aclSome := acl.GrantsByRole{Readers: []string{"group:some"}} 553 aclSome := acl.GrantsByRole{Readers: []string{"group:some"}}
578 aclOne := acl.GrantsByRole{Owners: []string{"one@example.com"}} 554 aclOne := acl.GrantsByRole{Owners: []string{"one@example.com"}}
579 aclAdmin := acl.GrantsByRole{Readers: []string{"group:administra tors"}, Owners: []string{"group:administrators"}} 555 aclAdmin := acl.GrantsByRole{Readers: []string{"group:administra tors"}, Owners: []string{"group:administrators"}}
580 556
581 ctxAnon := auth.WithState(c, &authtest.FakeState{ 557 ctxAnon := auth.WithState(c, &authtest.FakeState{
582 » » » Identity: "anonymous:anonymous", 558 » » » Identity: "anonymous:anonymous",
559 » » » IdentityGroups: []string{"all"},
583 }) 560 })
584 ctxOne := auth.WithState(c, &authtest.FakeState{ 561 ctxOne := auth.WithState(c, &authtest.FakeState{
585 Identity: "user:one@example.com", 562 Identity: "user:one@example.com",
586 IdentityGroups: []string{"all"}, 563 IdentityGroups: []string{"all"},
587 }) 564 })
588 ctxSome := auth.WithState(c, &authtest.FakeState{ 565 ctxSome := auth.WithState(c, &authtest.FakeState{
589 Identity: "user:some@example.com", 566 Identity: "user:some@example.com",
590 » » » IdentityGroups: []string{"some"}, 567 » » » IdentityGroups: []string{"all", "some"},
591 }) 568 })
592 ctxAdmin := auth.WithState(c, &authtest.FakeState{ 569 ctxAdmin := auth.WithState(c, &authtest.FakeState{
593 Identity: "user:admin@example.com", 570 Identity: "user:admin@example.com",
594 » » » IdentityGroups: []string{"administrators"}, 571 » » » IdentityGroups: []string{"administrators", "all"},
595 }) 572 })
596 573
597 So(ds.Put(c, 574 So(ds.Put(c,
598 &Job{JobID: "abc/1", ProjectID: "abc", Enabled: true, Ac ls: aclOne}, 575 &Job{JobID: "abc/1", ProjectID: "abc", Enabled: true, Ac ls: aclOne},
599 &Job{JobID: "abc/2", ProjectID: "abc", Enabled: true, Ac ls: aclSome}, 576 &Job{JobID: "abc/2", ProjectID: "abc", Enabled: true, Ac ls: aclSome},
600 » » » &Job{JobID: "abc/3", ProjectID: "abc", Enabled: true, Ac ls: aclDefault}, 577 » » » &Job{JobID: "abc/3", ProjectID: "abc", Enabled: true, Ac ls: aclPublic},
601 » » » &Job{JobID: "def/1", ProjectID: "def", Enabled: true, Ac ls: aclDefault}, 578 » » » &Job{JobID: "def/1", ProjectID: "def", Enabled: true, Ac ls: aclPublic},
602 » » » &Job{JobID: "def/2", ProjectID: "def", Enabled: false, A cls: aclDefault}, 579 » » » &Job{JobID: "def/2", ProjectID: "def", Enabled: false, A cls: aclPublic},
603 &Job{JobID: "secret/1", ProjectID: "secret", Enabled: tr ue, Acls: aclAdmin}, 580 &Job{JobID: "secret/1", ProjectID: "secret", Enabled: tr ue, Acls: aclAdmin},
604 ), ShouldBeNil) 581 ), ShouldBeNil)
605 582
606 job1 := ds.NewKey(c, "Job", "abc/1", 0, nil) 583 job1 := ds.NewKey(c, "Job", "abc/1", 0, nil)
607 job2 := ds.NewKey(c, "Job", "abc/2", 0, nil) 584 job2 := ds.NewKey(c, "Job", "abc/2", 0, nil)
608 job3 := ds.NewKey(c, "Job", "abc/3", 0, nil) 585 job3 := ds.NewKey(c, "Job", "abc/3", 0, nil)
609 So(ds.Put(c, 586 So(ds.Put(c,
610 &Invocation{ID: 1, JobKey: job1, InvocationNonce: 123}, 587 &Invocation{ID: 1, JobKey: job1, InvocationNonce: 123},
611 &Invocation{ID: 2, JobKey: job1, InvocationNonce: 123}, 588 &Invocation{ID: 2, JobKey: job1, InvocationNonce: 123},
612 &Invocation{ID: 3, JobKey: job1}, 589 &Invocation{ID: 3, JobKey: job1},
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
1259 1236
1260 func ensureOneTask(c context.Context, q string) *tq.Task { 1237 func ensureOneTask(c context.Context, q string) *tq.Task {
1261 tqt := tq.GetTestable(c) 1238 tqt := tq.GetTestable(c)
1262 tasks := tqt.GetScheduledTasks()[q] 1239 tasks := tqt.GetScheduledTasks()[q]
1263 So(len(tasks), ShouldEqual, 1) 1240 So(len(tasks), ShouldEqual, 1)
1264 for _, t := range tasks { 1241 for _, t := range tasks {
1265 return t 1242 return t
1266 } 1243 }
1267 return nil 1244 return nil
1268 } 1245 }
OLDNEW
« no previous file with comments | « scheduler/appengine/acl/acl_test.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698