Fix exception when plugin is being installed with --force

"put_request" does not return the request object,
it returns dict ready to use dict.

Change-Id: I4f2a18274e70e8687e2e9c83fc91081b0fa7bf2c
Implements: blueprint plugins-security-fixes-delivery
This commit is contained in:
Evgeniy L
2015-03-04 16:49:32 +03:00
parent 7c8c5f7777
commit 218abd03d0
2 changed files with 5 additions and 4 deletions

View File

@@ -420,8 +420,7 @@ class Plugins(base.BaseObject):
if resp_raw.status_code == 409 and force:
# Replace plugin information
url = cls.class_instance_path.format(id=resp['id'])
resp_raw = cls.connection.put_request(url, metadata)
resp = resp_raw.json()
resp = cls.connection.put_request(url, metadata)
else:
resp_raw.raise_for_status()

View File

@@ -347,11 +347,13 @@ class TestPluginsObject(base.UnitTestCase):
return_value=MagicMock(
status_code=409,
**{'json.return_value': {'id': 99}}))
@patch.object(Plugins.connection, 'put_request')
@patch.object(Plugins.connection, 'put_request', return_value='put_return')
def test_update_or_create_updates_with_force(
self, put_mock, post_mock, get_for_update_mock):
meta = {'id': 99, 'version': '1.0.0', 'package_version': '2.0.0'}
self.plugin.update_or_create(meta, force=True)
self.assertEqual(
self.plugin.update_or_create(meta, force=True),
'put_return')
post_mock.assert_called_once_with('plugins/', meta)
get_for_update_mock.assert_called_once_with(meta)
put_mock.assert_called_once_with('plugins/99', meta)