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

Side by Side Diff: appengine/findit/common/waterfall/test/buildbucket_client_test.py

Issue 1991333002: [Findit] Send targeted_tests to try-job in build_parameter instend of build_property (Findit side). (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: . Created 4 years, 7 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 Chromium Authors. All rights reserved. 1 # Copyright 2015 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 json 5 import json
6 6
7 from testing_utils import testing 7 from testing_utils import testing
8 8
9 from common.waterfall import buildbucket_client 9 from common.waterfall import buildbucket_client
10 10
11 11
12 class BuildBucketClientTest(testing.AppengineTestCase): 12 class BuildBucketClientTest(testing.AppengineTestCase):
13 13
14 def setUp(self): 14 def setUp(self):
15 super(BuildBucketClientTest, self).setUp() 15 super(BuildBucketClientTest, self).setUp()
16 16
17 with self.mock_urlfetch() as urlfetch: 17 with self.mock_urlfetch() as urlfetch:
18 self.mocked_urlfetch = urlfetch 18 self.mocked_urlfetch = urlfetch
19 19
20 def testGetBucketName(self): 20 def testGetBucketName(self):
21 mapping = { 21 mapping = {
22 'a': 'master.a', 22 'a': 'master.a',
23 'master.b': 'master.b', 23 'master.b': 'master.b',
24 } 24 }
25 for master_name, expected_full_master_name in mapping.iteritems(): 25 for master_name, expected_full_master_name in mapping.iteritems():
26 self.assertEqual(expected_full_master_name, 26 self.assertEqual(expected_full_master_name,
27 buildbucket_client._GetBucketName(master_name)) 27 buildbucket_client._GetBucketName(master_name))
28 28
29 def testTryJobToBuildbucketRequestWithRevision(self): 29 def testTryJobToBuildbucketRequestWithTests(self):
30 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': '1'}, ['a']) 30 try_job = buildbucket_client.TryJob(
31 'm', 'b', 'r', {'a': '1'}, ['a'],
32 {'tests': {'a_tests': ['Test.One', 'Test.Two']}})
31 expceted_parameters = { 33 expceted_parameters = {
32 'builder_name': 'b', 34 'builder_name': 'b',
33 'changes': [ 35 'changes': [
36 {
37 'author': {
38 'email': buildbucket_client._ROLE_EMAIL,
39 },
40 'revision': 'r',
41 },
42 ],
43 'properties': {
44 'a': '1',
45 },
46 'additional_build_parameters': {
47 'tests': {
48 'a_tests': ['Test.One', 'Test.Two']
49 }
50 }
51 }
52
53 request_json = try_job.ToBuildbucketRequest()
54 self.assertEqual('master.m', request_json['bucket'])
55 self.assertEqual(2, len(request_json['tags']))
56 self.assertEqual('a', request_json['tags'][0])
57 self.assertEqual('user_agent:findit', request_json['tags'][1])
58 parameters = json.loads(request_json['parameters_json'])
59 self.assertEqual(expceted_parameters, parameters)
60
61 def testTryJobToBuildbucketRequestWithRevision(self):
62 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': '1'}, ['a'], {})
63 expceted_parameters = {
64 'builder_name': 'b',
65 'changes': [
34 { 66 {
35 'author': { 67 'author': {
36 'email': buildbucket_client._ROLE_EMAIL, 68 'email': buildbucket_client._ROLE_EMAIL,
37 }, 69 },
38 'revision': 'r', 70 'revision': 'r',
39 }, 71 },
40 ], 72 ],
41 'properties': { 73 'properties': {
42 'a': '1', 74 'a': '1',
43 }, 75 },
44 } 76 }
45 77
46 request_json = try_job.ToBuildbucketRequest() 78 request_json = try_job.ToBuildbucketRequest()
47 self.assertEqual('master.m', request_json['bucket']) 79 self.assertEqual('master.m', request_json['bucket'])
48 self.assertEqual(2, len(request_json['tags'])) 80 self.assertEqual(2, len(request_json['tags']))
49 self.assertEqual('a', request_json['tags'][0]) 81 self.assertEqual('a', request_json['tags'][0])
50 self.assertEqual('user_agent:findit', request_json['tags'][1]) 82 self.assertEqual('user_agent:findit', request_json['tags'][1])
51 parameters = json.loads(request_json['parameters_json']) 83 parameters = json.loads(request_json['parameters_json'])
52 self.assertEqual(expceted_parameters, parameters) 84 self.assertEqual(expceted_parameters, parameters)
53 85
54 def testTryJobToBuildbucketRequestWithoutRevision(self): 86 def testTryJobToBuildbucketRequestWithoutRevision(self):
55 try_job = buildbucket_client.TryJob('m', 'b', None, {'a': '1'}, ['a']) 87 try_job = buildbucket_client.TryJob('m', 'b', None, {'a': '1'}, ['a'], {})
56 expceted_parameters = { 88 expceted_parameters = {
57 'builder_name': 'b', 89 'builder_name': 'b',
58 'properties': { 90 'properties': {
59 'a': '1', 91 'a': '1',
60 }, 92 },
61 } 93 }
62 94
63 request_json = try_job.ToBuildbucketRequest() 95 request_json = try_job.ToBuildbucketRequest()
64 self.assertEqual('master.m', request_json['bucket']) 96 self.assertEqual('master.m', request_json['bucket'])
65 self.assertEqual(2, len(request_json['tags'])) 97 self.assertEqual(2, len(request_json['tags']))
(...skipping 18 matching lines...) Expand all
84 headers=headers, data=try_job_request) 116 headers=headers, data=try_job_request)
85 117
86 def testTriggerTryJobsSuccess(self): 118 def testTriggerTryJobsSuccess(self):
87 response = { 119 response = {
88 'build': { 120 'build': {
89 'id': '1', 121 'id': '1',
90 'url': 'url', 122 'url': 'url',
91 'status': 'SCHEDULED', 123 'status': 'SCHEDULED',
92 } 124 }
93 } 125 }
94 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': 'b'}, []) 126 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': 'b'}, [], {})
95 self._MockUrlFetch( 127 self._MockUrlFetch(
96 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response)) 128 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response))
97 results = buildbucket_client.TriggerTryJobs([try_job]) 129 results = buildbucket_client.TriggerTryJobs([try_job])
98 self.assertEqual(1, len(results)) 130 self.assertEqual(1, len(results))
99 error, build = results[0] 131 error, build = results[0]
100 self.assertIsNone(error) 132 self.assertIsNone(error)
101 self.assertIsNotNone(build) 133 self.assertIsNotNone(build)
102 self.assertEqual('1', build.id) 134 self.assertEqual('1', build.id)
103 self.assertEqual('url', build.url) 135 self.assertEqual('url', build.url)
104 self.assertEqual('SCHEDULED', build.status) 136 self.assertEqual('SCHEDULED', build.status)
105 137
106 def testTriggerTryJobsFailure(self): 138 def testTriggerTryJobsFailure(self):
107 response = { 139 response = {
108 'error': { 140 'error': {
109 'reason': 'error', 141 'reason': 'error',
110 'message': 'message', 142 'message': 'message',
111 } 143 }
112 } 144 }
113 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, []) 145 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, [], {})
114 self._MockUrlFetch( 146 self._MockUrlFetch(
115 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response)) 147 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response))
116 results = buildbucket_client.TriggerTryJobs([try_job]) 148 results = buildbucket_client.TriggerTryJobs([try_job])
117 self.assertEqual(1, len(results)) 149 self.assertEqual(1, len(results))
118 error, build = results[0] 150 error, build = results[0]
119 self.assertIsNotNone(error) 151 self.assertIsNotNone(error)
120 self.assertEqual('error', error.reason) 152 self.assertEqual('error', error.reason)
121 self.assertEqual('message', error.message) 153 self.assertEqual('message', error.message)
122 self.assertIsNone(build) 154 self.assertIsNone(build)
123 155
124 def testTriggerTryJobsRequestFailure(self): 156 def testTriggerTryJobsRequestFailure(self):
125 response = 'Not Found' 157 response = 'Not Found'
126 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, []) 158 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, [], {})
127 self._MockUrlFetch( 159 self._MockUrlFetch(
128 None, json.dumps(try_job.ToBuildbucketRequest()), 160 None, json.dumps(try_job.ToBuildbucketRequest()),
129 response, 404) 161 response, 404)
130 results = buildbucket_client.TriggerTryJobs([try_job]) 162 results = buildbucket_client.TriggerTryJobs([try_job])
131 self.assertEqual(1, len(results)) 163 self.assertEqual(1, len(results))
132 error, build = results[0] 164 error, build = results[0]
133 self.assertIsNotNone(error) 165 self.assertIsNotNone(error)
134 self.assertEqual(404, error.reason) 166 self.assertEqual(404, error.reason)
135 self.assertEqual('Not Found', error.message) 167 self.assertEqual('Not Found', error.message)
136 self.assertIsNone(build) 168 self.assertIsNone(build)
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 response = 'Not Found' 226 response = 'Not Found'
195 self._MockUrlFetch( 227 self._MockUrlFetch(
196 '3', None, response, 404) 228 '3', None, response, 404)
197 results = buildbucket_client.GetTryJobs(['3']) 229 results = buildbucket_client.GetTryJobs(['3'])
198 self.assertEqual(1, len(results)) 230 self.assertEqual(1, len(results))
199 error, build = results[0] 231 error, build = results[0]
200 self.assertIsNotNone(error) 232 self.assertIsNotNone(error)
201 self.assertEqual(404, error.reason) 233 self.assertEqual(404, error.reason)
202 self.assertEqual('Not Found', error.message) 234 self.assertEqual('Not Found', error.message)
203 self.assertIsNone(build) 235 self.assertIsNone(build)
OLDNEW
« no previous file with comments | « appengine/findit/common/waterfall/buildbucket_client.py ('k') | appengine/findit/waterfall/schedule_try_job_pipeline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698