Merge "Add autogenerated tag to Gerrit reviews"
This commit is contained in:
commit
feee5b0a95
|
@ -419,7 +419,7 @@ class FakeGerritChange(object):
|
||||||
return event
|
return event
|
||||||
|
|
||||||
def addApproval(self, category, value, username='reviewer_john',
|
def addApproval(self, category, value, username='reviewer_john',
|
||||||
granted_on=None, message=''):
|
granted_on=None, message='', tag=None):
|
||||||
if not granted_on:
|
if not granted_on:
|
||||||
granted_on = time.time()
|
granted_on = time.time()
|
||||||
approval = {
|
approval = {
|
||||||
|
@ -430,7 +430,8 @@ class FakeGerritChange(object):
|
||||||
'username': username,
|
'username': username,
|
||||||
'email': username + '@example.com',
|
'email': username + '@example.com',
|
||||||
},
|
},
|
||||||
'grantedOn': int(granted_on)
|
'grantedOn': int(granted_on),
|
||||||
|
'__tag': tag, # Not available in ssh api
|
||||||
}
|
}
|
||||||
for i, x in enumerate(self.patchsets[-1]['approvals'][:]):
|
for i, x in enumerate(self.patchsets[-1]['approvals'][:]):
|
||||||
if x['by']['username'] == username and x['type'] == category:
|
if x['by']['username'] == username and x['type'] == category:
|
||||||
|
@ -530,12 +531,15 @@ class FakeGerritChange(object):
|
||||||
_, label_min, label_max = self.categories[app['type']]
|
_, label_min, label_max = self.categories[app['type']]
|
||||||
val = int(app['value'])
|
val = int(app['value'])
|
||||||
label_all = label.setdefault('all', [])
|
label_all = label.setdefault('all', [])
|
||||||
label_all.append({
|
approval = {
|
||||||
"value": val,
|
"value": val,
|
||||||
"username": app['by']['username'],
|
"username": app['by']['username'],
|
||||||
"email": app['by']['email'],
|
"email": app['by']['email'],
|
||||||
"date": str(datetime.datetime.fromtimestamp(app['grantedOn'])),
|
"date": str(datetime.datetime.fromtimestamp(app['grantedOn'])),
|
||||||
})
|
}
|
||||||
|
if app.get('__tag') is not None:
|
||||||
|
approval['tag'] = app['__tag']
|
||||||
|
label_all.append(approval)
|
||||||
if val == label_min:
|
if val == label_min:
|
||||||
label['blocking'] = True
|
label['blocking'] = True
|
||||||
if 'rejected' not in label:
|
if 'rejected' not in label:
|
||||||
|
@ -716,8 +720,10 @@ class GerritWebServer(object):
|
||||||
message = data['message']
|
message = data['message']
|
||||||
action = data.get('labels', {})
|
action = data.get('labels', {})
|
||||||
comments = data.get('comments', {})
|
comments = data.get('comments', {})
|
||||||
|
tag = data.get('tag', None)
|
||||||
fake_gerrit._test_handle_review(
|
fake_gerrit._test_handle_review(
|
||||||
int(change.data['number']), message, action, comments)
|
int(change.data['number']), message, action, comments,
|
||||||
|
tag=tag)
|
||||||
self.send_response(200)
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
|
|
||||||
|
@ -962,7 +968,7 @@ class FakeGerritConnection(gerritconnection.GerritConnection):
|
||||||
self._test_handle_review(int(item.change.number), message, action)
|
self._test_handle_review(int(item.change.number), message, action)
|
||||||
|
|
||||||
def _test_handle_review(self, change_number, message, action,
|
def _test_handle_review(self, change_number, message, action,
|
||||||
file_comments=None):
|
file_comments=None, tag=None):
|
||||||
# Handle a review action from a test
|
# Handle a review action from a test
|
||||||
change = self.changes[change_number]
|
change = self.changes[change_number]
|
||||||
|
|
||||||
|
@ -978,7 +984,8 @@ class FakeGerritConnection(gerritconnection.GerritConnection):
|
||||||
|
|
||||||
for cat in action:
|
for cat in action:
|
||||||
if cat != 'submit':
|
if cat != 'submit':
|
||||||
change.addApproval(cat, action[cat], username=self.user)
|
change.addApproval(cat, action[cat], username=self.user,
|
||||||
|
tag=tag)
|
||||||
|
|
||||||
if message:
|
if message:
|
||||||
change.messages.append(message)
|
change.messages.append(message)
|
||||||
|
|
|
@ -148,6 +148,8 @@ class TestGerritWeb(ZuulTestCase):
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
|
|
||||||
self.assertEqual(A.patchsets[0]['approvals'][0]['value'], "-1")
|
self.assertEqual(A.patchsets[0]['approvals'][0]['value'], "-1")
|
||||||
|
self.assertEqual(A.patchsets[0]['approvals'][0]['__tag'],
|
||||||
|
"autogenerated:zuul:check")
|
||||||
self.assertIn('Zuul encountered a syntax error',
|
self.assertIn('Zuul encountered a syntax error',
|
||||||
A.messages[0])
|
A.messages[0])
|
||||||
comments = sorted(A.comments, key=lambda x: x['line'])
|
comments = sorted(A.comments, key=lambda x: x['line'])
|
||||||
|
|
|
@ -1018,6 +1018,7 @@ class GerritConnection(BaseConnection):
|
||||||
data['labels'] = labels
|
data['labels'] = labels
|
||||||
if file_comments:
|
if file_comments:
|
||||||
data['comments'] = file_comments
|
data['comments'] = file_comments
|
||||||
|
data['tag'] = 'autogenerated:zuul:%s' % (item.pipeline.name)
|
||||||
changeid = "%s~%s~%s" % (
|
changeid = "%s~%s~%s" % (
|
||||||
urllib.parse.quote(str(change.project), safe=''),
|
urllib.parse.quote(str(change.project), safe=''),
|
||||||
urllib.parse.quote(str(change.branch), safe=''),
|
urllib.parse.quote(str(change.branch), safe=''),
|
||||||
|
|
Loading…
Reference in New Issue