git cl: record additional tag for builds triggered via retry-failed.
Tag is the same as used by Gerrit plugin for the same functionality:
retry_failed:1
R=ehmaldonado
Change-Id: I14ef435b676088c86ae7cc0536c6a68fa58bd89f
Bug: 445502
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1848258
Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 9639726..1a2612f 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -3176,6 +3176,59 @@
'WARNING Could not parse bucket "not-a-bucket". Skipping.',
git_cl.sys.stdout.getvalue())
+ @mock.patch('git_cl._call_buildbucket')
+ @mock.patch('git_cl.fetch_try_jobs')
+ def testScheduleOnBuildbucketRetryFailed(
+ self, mockFetchTryJobs, mockCallBuildbucket):
+
+ git_cl.fetch_try_jobs.side_effect = lambda *_, **kw: {
+ 7: [],
+ 6: [{
+ 'id': 112112,
+ 'builder': {
+ 'project': 'chromium',
+ 'bucket': 'try',
+ 'builder': 'linux',
+ },
+ 'status': 'FAILURE',
+ }],
+ }[kw['patchset']]
+ mockCallBuildbucket.return_value = {}
+
+ self.assertEqual(0, git_cl.main(['try', '--retry-failed']))
+ self.assertIn(
+ 'Scheduling jobs on:\nBucket: chromium/try',
+ git_cl.sys.stdout.getvalue())
+
+ expected_request = {
+ "requests": [{
+ "scheduleBuild": {
+ "requestId": "uuid4",
+ "builder": {
+ "project": "chromium",
+ "bucket": "try",
+ "builder": "linux",
+ },
+ "gerritChanges": [{
+ "project": "depot_tools",
+ "host": "chromium-review.googlesource.com",
+ "patchset": 7,
+ "change": 123456,
+ }],
+ "properties": {
+ "category": "git_cl_try",
+ },
+ "tags": [
+ {"value": "linux", "key": "builder"},
+ {"value": "git_cl_try", "key": "user_agent"},
+ {"value": "1", "key": "retry_failed"},
+ ],
+ },
+ }],
+ }
+ mockCallBuildbucket.assert_called_with(
+ mock.ANY, 'cr-buildbucket.appspot.com', 'Batch', expected_request)
+
def test_parse_bucket(self):
test_cases = [
{