git cl try: support multiple bots from different masters without specifying master.
It might be good to make this change after the refactoring CL http://crrev.com/2442153002.
BUG=640740
Review-Url: https://codereview.chromium.org/2439293002
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 4b80521..4b4e295 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -1988,7 +1988,6 @@
]
def _buildbucket_retry(*_, **kw):
- # self.maxDiff = 10000
body = json.loads(kw['body'])
self.assertEqual(len(body['builds']), 1)
build = body['builds'][0]
@@ -2023,6 +2022,48 @@
git_cl.sys.stdout.getvalue(),
'Tried jobs on:\nBucket: test.bucket')
+ def test_git_cl_try_bots_on_multiple_masters(self):
+ self.mock(git_cl.Changelist, 'GetMostRecentPatchset', lambda _: 20001)
+ self.calls = [
+ ((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
+ ((['git', 'config', 'branch.feature.rietveldissue'],), '123'),
+ ((['git', 'config', 'rietveld.autoupdate'],), CERR1),
+ ((['git', 'config', 'rietveld.server'],),
+ 'https://codereview.chromium.org'),
+ ((['git', 'config', 'branch.feature.rietveldserver'],), CERR1),
+ ((['git', 'config', 'branch.feature.rietveldpatchset'],), '20001'),
+ ]
+
+ def _buildbucket_retry(*_, **kw):
+ body = json.loads(kw['body'])
+ self.assertEqual(len(body['builds']), 2)
+
+ first_build_params = json.loads(body['builds'][0]['parameters_json'])
+ self.assertEqual(first_build_params['builder_name'], 'builder1')
+ self.assertEqual(first_build_params['properties']['master'], 'master1')
+
+ first_build_params = json.loads(body['builds'][1]['parameters_json'])
+ self.assertEqual(first_build_params['builder_name'], 'builder2')
+ self.assertEqual(first_build_params['properties']['master'], 'master2')
+
+ self.mock(git_cl, '_buildbucket_retry', _buildbucket_retry)
+
+ self.mock(git_cl.urllib2, 'urlopen', lambda _: StringIO.StringIO(
+ json.dumps({'builder1': ['master1'], 'builder2': ['master2']})))
+
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
+ self.assertEqual(
+ 0, git_cl.main(['try', '-b', 'builder1', '-b', 'builder2']))
+ self.assertEqual(
+ git_cl.sys.stdout.getvalue(),
+ 'Tried jobs on:\n'
+ 'Bucket: master.master1\n'
+ ' builder1: []\n'
+ 'Bucket: master.master2\n'
+ ' builder2: []\n'
+ 'To see results here, run: git cl try-results\n'
+ 'To see results in browser, run: git cl web\n')
+
def _common_GerritCommitMsgHookCheck(self):
self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.os.path, 'abspath',