diff --git a/gerrit_client.py b/gerrit_client.py index bd9b15192..e3b20b648 100755 --- a/gerrit_client.py +++ b/gerrit_client.py @@ -393,6 +393,30 @@ def CMDsetlabel(parser, args): write_result(result, opt) +@subcommand.usage('[args ...]') +def CMDaddMessage(parser, args): + """Adds a message to a given change at given revision.""" + parser.add_option('-c', '--change', type=int, help='change number') + parser.add_option( + '-r', + '--revision', + type=str, + default='current', + help='revision ID. See ' + 'https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id ' # pylint: disable=line-too-long + 'for acceptable format') + parser.add_option('-m', '--message', type=str, help='message to add') + (opt, args) = parser.parse_args(args) + assert opt.change, "-c not defined" + assert opt.message, "-m not defined" + result = gerrit_util.SetReview(urllib.parse.urlparse(opt.host).netloc, + opt.change, + revision=opt.revision, + msg=opt.message) + logging.info(result) + write_result(result, opt) + + @subcommand.usage('') def CMDrestore(parser, args): """Restores a Gerrit change.""" diff --git a/tests/gerrit_client_test.py b/tests/gerrit_client_test.py index 7b3b111d1..0764628db 100755 --- a/tests/gerrit_client_test.py +++ b/tests/gerrit_client_test.py @@ -158,6 +158,23 @@ class TestGerritClient(unittest.TestCase): 1, labels={'some-label': '-2'}) + @mock.patch('gerrit_util.SetReview', return_value='') + def test_addmessage(self, util_mock): + gerrit_client.main([ + 'addmessage', + '--host', + 'https://example.org/foo', + '-c', + '1', + '-r', + '2', + '-m', + 'This is a message', + ]) + util_mock.assert_called_once_with('example.org', + 1, + revision='2', + msg='This is a message') if __name__ == '__main__': logging.basicConfig(