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

Unified Diff: appengine/cr-buildbucket/test/service_test.py

Issue 1082303002: buildbucket: put_batch endpoint (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: appengine/cr-buildbucket/test/service_test.py
diff --git a/appengine/cr-buildbucket/test/service_test.py b/appengine/cr-buildbucket/test/service_test.py
index bdef6d14099d94b6ed668559bb8a992e4c8cf794..129e9320deb26d594d70913a74938484f5e177d2 100644
--- a/appengine/cr-buildbucket/test/service_test.py
+++ b/appengine/cr-buildbucket/test/service_test.py
@@ -8,6 +8,7 @@ import json
from components import auth
from components import utils
+from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
from testing_utils import testing
import mock
@@ -29,6 +30,11 @@ class BuildBucketServiceTest(testing.AppengineTestCase):
self.mock(acl, 'can', can)
def setUp(self):
+ # Create a consistency policy that will simulate the High Replication
+ # consistency model.
+ self.consistency_policy = (
+ datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=1.0))
+
super(BuildBucketServiceTest, self).setUp()
self.service = service.BuildBucketService()
self.test_build = model.Build(
@@ -86,6 +92,30 @@ class BuildBucketServiceTest(testing.AppengineTestCase):
with self.assertRaises(auth.AuthorizationError):
self.service.add(self.test_build.bucket)
+ ################################# ADD_BATCH ##################################
+
+ def test_add_batch(self):
+ builds = self.service.add_batch([{'bucket': 'chromium'}, {'bucket': 'v8'}])
+ self.assertEqual(len(builds), 2)
+
+ self.assertIsNotNone(builds[0].key)
+ self.assertIsNotNone(builds[0].key.id())
+ self.assertEqual(builds[0].bucket, 'chromium')
+
+ self.assertIsNotNone(builds[1].key)
+ self.assertIsNotNone(builds[1].key.id())
+ self.assertEqual(builds[1].bucket, 'v8')
+
+ def test_add_batch_too_many(self):
+ build_reqs = [{'bucket': 'chromium'}] * 30
+ with self.assertRaises(errors.InvalidInputError):
+ self.service.add_batch(build_reqs)
+
+ def test_add_batch_with_bad_build(self):
+ with self.assertRaises(errors.InvalidInputError):
+ self.service.add_batch([{'bucket': 'chromium'}, {'bucket': 2}])
+ self.assertFalse(model.Build.query().fetch())
+
#################################### GET #####################################
def test_get(self):

Powered by Google App Engine
This is Rietveld 408576698