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

Side by Side Diff: appengine/cr-buildbucket/test/service_test.py

Issue 1877083003: buildbucket: add retry API. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: retry_of as an attribute Created 4 years, 8 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 | « appengine/cr-buildbucket/test/api_test.py ('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 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import contextlib 5 import contextlib
6 import datetime 6 import datetime
7 7
8 from components import auth 8 from components import auth
9 from components import utils 9 from components import utils
10 from google.appengine.ext import ndb 10 from google.appengine.ext import ndb
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 def test_add_with_auth_error(self): 103 def test_add_with_auth_error(self):
104 self.mock_cannot(acl.Action.ADD_BUILD) 104 self.mock_cannot(acl.Action.ADD_BUILD)
105 with self.assertRaises(auth.AuthorizationError): 105 with self.assertRaises(auth.AuthorizationError):
106 service.add(self.test_build.bucket) 106 service.add(self.test_build.bucket)
107 107
108 def test_add_with_bad_parameters(self): 108 def test_add_with_bad_parameters(self):
109 with self.assertRaises(errors.InvalidInputError): 109 with self.assertRaises(errors.InvalidInputError):
110 service.add('bucket', parameters=[]) 110 service.add('bucket', parameters=[])
111 111
112 ################################### RETRY ####################################
113
114 def test_retry(self):
115 self.test_build.put()
116 build = service.retry(self.test_build.key.id())
117 self.assertIsNotNone(build)
118 self.assertIsNotNone(build.key)
119 self.assertNotEqual(build.key.id(), self.test_build.key.id())
120 self.assertEqual(build.bucket, self.test_build.bucket)
121 self.assertEqual(build.parameters, self.test_build.parameters)
122 self.assertEqual(build.retry_of, self.test_build.key.id())
123
124 def test_retry_not_found(self):
125 with self.assertRaises(errors.BuildNotFoundError):
126 service.retry(2)
127
112 #################################### GET ##################################### 128 #################################### GET #####################################
113 129
114 def test_get(self): 130 def test_get(self):
115 self.test_build.put() 131 self.test_build.put()
116 build = service.get(self.test_build.key.id()) 132 build = service.get(self.test_build.key.id())
117 self.assertEqual(build, self.test_build) 133 self.assertEqual(build, self.test_build)
118 134
119 def test_get_nonexistent_build(self): 135 def test_get_nonexistent_build(self):
120 self.assertIsNone(service.get(42)) 136 self.assertIsNone(service.get(42))
121 137
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 build2 = model.Build( 282 build2 = model.Build(
267 bucket=self.test_build.bucket, 283 bucket=self.test_build.bucket,
268 created_by=auth.Identity.from_bytes('user:x@chromium.org') 284 created_by=auth.Identity.from_bytes('user:x@chromium.org')
269 ) 285 )
270 build2.put() 286 build2.put()
271 287
272 builds, _ = service.search( 288 builds, _ = service.search(
273 created_by='x@chromium.org', buckets=[self.test_build.bucket]) 289 created_by='x@chromium.org', buckets=[self.test_build.bucket])
274 self.assertEqual(builds, [build2]) 290 self.assertEqual(builds, [build2])
275 291
292 def test_search_by_retry_of(self):
293 self.test_build.put()
294 build2 = model.Build(
295 bucket=self.test_build.bucket,
296 retry_of=42,
297 )
298 build2.put()
299
300 builds, _ = service.search(retry_of=42)
301 self.assertEqual(builds, [build2])
302
276 def test_search_by_created_by_with_bad_string(self): 303 def test_search_by_created_by_with_bad_string(self):
277 with self.assertRaises(errors.InvalidInputError): 304 with self.assertRaises(errors.InvalidInputError):
278 service.search(created_by='blah') 305 service.search(created_by='blah')
279 306
280 def test_search_with_paging(self): 307 def test_search_with_paging(self):
281 self.put_many_builds() 308 self.put_many_builds()
282 309
283 first_page, next_cursor = service.search( 310 first_page, next_cursor = service.search(
284 buckets=[self.test_build.bucket], 311 buckets=[self.test_build.bucket],
285 max_builds=10, 312 max_builds=10,
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 self.test_build.bucket, model.BuildStatus.SCHEDULED) 795 self.test_build.bucket, model.BuildStatus.SCHEDULED)
769 796
770 def test_delete_many_builds_schedule_task(self): 797 def test_delete_many_builds_schedule_task(self):
771 service.delete_many_builds( 798 service.delete_many_builds(
772 self.test_build.bucket, model.BuildStatus.SCHEDULED) 799 self.test_build.bucket, model.BuildStatus.SCHEDULED)
773 800
774 def test_delete_many_completed_builds(self): 801 def test_delete_many_completed_builds(self):
775 with self.assertRaises(errors.InvalidInputError): 802 with self.assertRaises(errors.InvalidInputError):
776 service.delete_many_builds( 803 service.delete_many_builds(
777 self.test_build.bucket, model.BuildStatus.COMPLETED) 804 self.test_build.bucket, model.BuildStatus.COMPLETED)
OLDNEW
« no previous file with comments | « appengine/cr-buildbucket/test/api_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698