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

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'], {'a_tests': ['Test.One', 'Test.Two']})
31 expceted_parameters = { 32 expceted_parameters = {
32 'builder_name': 'b', 33 'builder_name': 'b',
33 'changes': [ 34 'changes': [
35 {
36 'author': {
37 'email': buildbucket_client._ROLE_EMAIL,
38 },
39 'revision': 'r',
40 },
41 ],
42 'properties': {
43 'a': '1',
44 },
45 'tests': {'a_tests': ['Test.One', 'Test.Two']}
46 }
47
48 request_json = try_job.ToBuildbucketRequest()
49 self.assertEqual('master.m', request_json['bucket'])
50 self.assertEqual(2, len(request_json['tags']))
51 self.assertEqual('a', request_json['tags'][0])
52 self.assertEqual('user_agent:findit', request_json['tags'][1])
53 parameters = json.loads(request_json['parameters_json'])
54 self.assertEqual(expceted_parameters, parameters)
55
56 def testTryJobToBuildbucketRequestWithRevision(self):
57 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': '1'}, ['a'], {})
58 expceted_parameters = {
59 'builder_name': 'b',
60 'changes': [
34 { 61 {
35 'author': { 62 'author': {
36 'email': buildbucket_client._ROLE_EMAIL, 63 'email': buildbucket_client._ROLE_EMAIL,
37 }, 64 },
38 'revision': 'r', 65 'revision': 'r',
39 }, 66 },
40 ], 67 ],
41 'properties': { 68 'properties': {
42 'a': '1', 69 'a': '1',
43 }, 70 },
44 } 71 }
45 72
46 request_json = try_job.ToBuildbucketRequest() 73 request_json = try_job.ToBuildbucketRequest()
47 self.assertEqual('master.m', request_json['bucket']) 74 self.assertEqual('master.m', request_json['bucket'])
48 self.assertEqual(2, len(request_json['tags'])) 75 self.assertEqual(2, len(request_json['tags']))
49 self.assertEqual('a', request_json['tags'][0]) 76 self.assertEqual('a', request_json['tags'][0])
50 self.assertEqual('user_agent:findit', request_json['tags'][1]) 77 self.assertEqual('user_agent:findit', request_json['tags'][1])
51 parameters = json.loads(request_json['parameters_json']) 78 parameters = json.loads(request_json['parameters_json'])
52 self.assertEqual(expceted_parameters, parameters) 79 self.assertEqual(expceted_parameters, parameters)
53 80
54 def testTryJobToBuildbucketRequestWithoutRevision(self): 81 def testTryJobToBuildbucketRequestWithoutRevision(self):
55 try_job = buildbucket_client.TryJob('m', 'b', None, {'a': '1'}, ['a']) 82 try_job = buildbucket_client.TryJob('m', 'b', None, {'a': '1'}, ['a'], {})
56 expceted_parameters = { 83 expceted_parameters = {
57 'builder_name': 'b', 84 'builder_name': 'b',
58 'properties': { 85 'properties': {
59 'a': '1', 86 'a': '1',
60 }, 87 },
61 } 88 }
62 89
63 request_json = try_job.ToBuildbucketRequest() 90 request_json = try_job.ToBuildbucketRequest()
64 self.assertEqual('master.m', request_json['bucket']) 91 self.assertEqual('master.m', request_json['bucket'])
65 self.assertEqual(2, len(request_json['tags'])) 92 self.assertEqual(2, len(request_json['tags']))
(...skipping 18 matching lines...) Expand all
84 headers=headers, data=try_job_request) 111 headers=headers, data=try_job_request)
85 112
86 def testTriggerTryJobsSuccess(self): 113 def testTriggerTryJobsSuccess(self):
87 response = { 114 response = {
88 'build': { 115 'build': {
89 'id': '1', 116 'id': '1',
90 'url': 'url', 117 'url': 'url',
91 'status': 'SCHEDULED', 118 'status': 'SCHEDULED',
92 } 119 }
93 } 120 }
94 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': 'b'}, []) 121 try_job = buildbucket_client.TryJob('m', 'b', 'r', {'a': 'b'}, [], {})
95 self._MockUrlFetch( 122 self._MockUrlFetch(
96 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response)) 123 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response))
97 results = buildbucket_client.TriggerTryJobs([try_job]) 124 results = buildbucket_client.TriggerTryJobs([try_job])
98 self.assertEqual(1, len(results)) 125 self.assertEqual(1, len(results))
99 error, build = results[0] 126 error, build = results[0]
100 self.assertIsNone(error) 127 self.assertIsNone(error)
101 self.assertIsNotNone(build) 128 self.assertIsNotNone(build)
102 self.assertEqual('1', build.id) 129 self.assertEqual('1', build.id)
103 self.assertEqual('url', build.url) 130 self.assertEqual('url', build.url)
104 self.assertEqual('SCHEDULED', build.status) 131 self.assertEqual('SCHEDULED', build.status)
105 132
106 def testTriggerTryJobsFailure(self): 133 def testTriggerTryJobsFailure(self):
107 response = { 134 response = {
108 'error': { 135 'error': {
109 'reason': 'error', 136 'reason': 'error',
110 'message': 'message', 137 'message': 'message',
111 } 138 }
112 } 139 }
113 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, []) 140 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, [], {})
114 self._MockUrlFetch( 141 self._MockUrlFetch(
115 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response)) 142 None, json.dumps(try_job.ToBuildbucketRequest()), json.dumps(response))
116 results = buildbucket_client.TriggerTryJobs([try_job]) 143 results = buildbucket_client.TriggerTryJobs([try_job])
117 self.assertEqual(1, len(results)) 144 self.assertEqual(1, len(results))
118 error, build = results[0] 145 error, build = results[0]
119 self.assertIsNotNone(error) 146 self.assertIsNotNone(error)
120 self.assertEqual('error', error.reason) 147 self.assertEqual('error', error.reason)
121 self.assertEqual('message', error.message) 148 self.assertEqual('message', error.message)
122 self.assertIsNone(build) 149 self.assertIsNone(build)
123 150
124 def testTriggerTryJobsRequestFailure(self): 151 def testTriggerTryJobsRequestFailure(self):
125 response = 'Not Found' 152 response = 'Not Found'
126 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, []) 153 try_job = buildbucket_client.TryJob('m', 'b', 'r', {}, [], {})
127 self._MockUrlFetch( 154 self._MockUrlFetch(
128 None, json.dumps(try_job.ToBuildbucketRequest()), 155 None, json.dumps(try_job.ToBuildbucketRequest()),
129 response, 404) 156 response, 404)
130 results = buildbucket_client.TriggerTryJobs([try_job]) 157 results = buildbucket_client.TriggerTryJobs([try_job])
131 self.assertEqual(1, len(results)) 158 self.assertEqual(1, len(results))
132 error, build = results[0] 159 error, build = results[0]
133 self.assertIsNotNone(error) 160 self.assertIsNotNone(error)
134 self.assertEqual(404, error.reason) 161 self.assertEqual(404, error.reason)
135 self.assertEqual('Not Found', error.message) 162 self.assertEqual('Not Found', error.message)
136 self.assertIsNone(build) 163 self.assertIsNone(build)
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 response = 'Not Found' 221 response = 'Not Found'
195 self._MockUrlFetch( 222 self._MockUrlFetch(
196 '3', None, response, 404) 223 '3', None, response, 404)
197 results = buildbucket_client.GetTryJobs(['3']) 224 results = buildbucket_client.GetTryJobs(['3'])
198 self.assertEqual(1, len(results)) 225 self.assertEqual(1, len(results))
199 error, build = results[0] 226 error, build = results[0]
200 self.assertIsNotNone(error) 227 self.assertIsNotNone(error)
201 self.assertEqual(404, error.reason) 228 self.assertEqual(404, error.reason)
202 self.assertEqual('Not Found', error.message) 229 self.assertEqual('Not Found', error.message)
203 self.assertIsNone(build) 230 self.assertIsNone(build)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698