Merge "More friendly message reinstalling a v1.0 plugin."

This commit is contained in:
Jenkins
2016-04-13 14:39:50 +00:00
committed by Gerrit Code Review
2 changed files with 20 additions and 0 deletions

View File

@@ -453,6 +453,11 @@ class Plugins(base.BaseObject):
# Replace plugin information
url = cls.class_instance_path.format(id=resp['id'])
resp = cls.connection.put_request(url, metadata)
elif resp_raw.status_code == 409:
error.exit_with_error(
"Nothing to do: %(title)s, version "
"%(package_version)s, does not update "
"installed plugin." % metadata)
else:
resp_raw.raise_for_status()

View File

@@ -346,6 +346,21 @@ class TestPluginsObject(base.UnitTestCase):
get_for_update_mock.assert_called_once_with(meta)
self.assertFalse(put_mock.called)
@patch.object(Plugins, 'get_plugin_for_update', return_value=None)
@patch.object(Plugins.connection, 'post_request_raw',
return_value=MagicMock(
status_code=409,
**{'json.return_value': {'id': 99}}))
@patch.object(Plugins.connection, 'put_request', return_value='put_return')
def test_update_or_create_updates_without_force(
self, put_mock, post_mock, get_for_update_mock):
meta = {'id': 99, 'version': '1.0.0', 'package_version': '2.0.0',
'title': 'Plugin title'}
self.assertRaises(SystemExit,
self.plugin.update_or_create,
meta,
force=False)
@patch.object(Plugins, 'get_plugin_for_update', return_value=None)
@patch.object(Plugins.connection, 'post_request_raw',
return_value=MagicMock(