You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.6 KiB
Python
89 lines
2.6 KiB
Python
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import copy
|
|
|
|
from recipe_engine import recipe_test_api
|
|
|
|
|
|
# Exemplary change. Note: This contains only a subset of the key/value pairs
|
|
# present in production to limit recipe simulation output.
|
|
EXAMPLE_RESPONSE = {
|
|
'status': 'NEW',
|
|
'created': '2017-01-30 13:11:20.000000000',
|
|
'_number': 91827,
|
|
'change_id': 'Ideadbeef',
|
|
'project': 'chromium/src',
|
|
'has_review_started': False,
|
|
'branch': 'master',
|
|
'subject': 'Change title',
|
|
'revisions': {
|
|
'184ebe53805e102605d11f6b143486d15c23a09c': {
|
|
'_number': 1,
|
|
'commit': {
|
|
'message': 'Change commit message',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
class GerritTestApi(recipe_test_api.RecipeTestApi):
|
|
|
|
def _make_gerrit_response_json(self, data):
|
|
return self.m.json.output(data)
|
|
|
|
def make_gerrit_create_branch_response_data(self):
|
|
return self._make_gerrit_response_json({
|
|
"ref": "refs/heads/test",
|
|
"revision": "76016386a0d8ecc7b6be212424978bb45959d668",
|
|
"can_delete": True
|
|
})
|
|
|
|
def make_gerrit_get_branch_response_data(self):
|
|
return self._make_gerrit_response_json({
|
|
"ref": "refs/heads/master",
|
|
"revision": "67ebf73496383c6777035e374d2d664009e2aa5c"
|
|
})
|
|
|
|
def get_one_change_response_data(
|
|
self, branch=None, change=None, project=None, patchset=None, host=None,
|
|
o_params=None):
|
|
o_params = o_params or []
|
|
response = copy.deepcopy(EXAMPLE_RESPONSE)
|
|
patchset_dict = response['revisions'].values()[0]
|
|
|
|
if branch:
|
|
response['branch'] = branch
|
|
if change:
|
|
response['_number'] = int(change)
|
|
if project:
|
|
response['project'] = project
|
|
if patchset:
|
|
patchset_dict['_number'] = int(patchset)
|
|
|
|
if 'DOWNLOAD_COMMANDS' in o_params:
|
|
patchset_dict['fetch'] = {
|
|
'http': {
|
|
'url': 'https://chromium.googlesource.com/chromium/src',
|
|
'ref': 'refs/changes/27/91827/1',
|
|
},
|
|
}
|
|
|
|
if host:
|
|
patchset_dict['fetch']['http']['url'] = host
|
|
elif project:
|
|
patchset_dict['fetch']['http']['url'] = (
|
|
'https://chromium.googlesource.com/' + project)
|
|
|
|
if change or patchset:
|
|
patchset_dict['fetch']['http']['ref'] = 'refs/changes/{}/{}/{}'.format(
|
|
str(response['_number'])[-2:],
|
|
response['_number'],
|
|
patchset_dict['_number'])
|
|
|
|
return self._make_gerrit_response_json([response])
|
|
|
|
def get_empty_changes_response_data(self):
|
|
return self._make_gerrit_response_json([])
|