def test_rename_existing_name(self, mock_get, mock_update): id = UPDATE_NAME_AFTER_DELETE_TYPE name = "vol_type_%s" % id updated_name = "%s_%s" % (name, id) desc = "vol_type_desc_%s" % id mock_update.side_effect = exception.VolumeTypeExists(id=id, name=name) mock_get.return_value = return_volume_types_get_volume_type_updated( UPDATE_NAME_AFTER_DELETE_TYPE) # first attempt fail body = {"volume_type": {"name": name}} req = fakes.HTTPRequest.blank( '/v2/%s/types/%s' % (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE)) req.method = 'PUT' self.assertEqual(0, len(self.notifier.notifications)) self.assertRaises(webob.exc.HTTPConflict, self.controller._update, req, UPDATE_NAME_AFTER_DELETE_TYPE, body=body) self.assertEqual(1, len(self.notifier.notifications)) # delete self.notifier.reset() self.mock_object(volume_types, 'destroy', return_volume_types_destroy) req = fakes.HTTPRequest.blank( '/v2/%s/types/%s' % (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE)) self.assertEqual(0, len(self.notifier.notifications)) self.controller._delete(req, UPDATE_NAME_AFTER_DELETE_TYPE) self.assertEqual(1, len(self.notifier.notifications)) # update again mock_update.side_effect = mock.MagicMock() body = {"volume_type": {"name": updated_name}} req = fakes.HTTPRequest.blank( '/v2/%s/types/%s' % (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE)) req.method = 'PUT' self.notifier.reset() self.assertEqual(0, len(self.notifier.notifications)) res_dict = self.controller._update(req, UPDATE_NAME_AFTER_DELETE_TYPE, body=body) self._check_test_results(res_dict, { 'expected_name': name, 'expected_desc': desc }) self.assertEqual(1, len(self.notifier.notifications))
def test_rename_existing_name(self, mock_get, mock_update): mock_update.side_effect = exception.VolumeTypeExists( id="666", name="vol_type_666") mock_get.return_value = return_volume_types_get_volume_type_updated( '666') # first attempt fail body = {"volume_type": {"name": "vol_type_666"}} req = fakes.HTTPRequest.blank('/v2/fake/types/666') req.method = 'PUT' self.assertEqual(0, len(self.notifier.notifications)) self.assertRaises(webob.exc.HTTPConflict, self.controller._update, req, '666', body) self.assertEqual(1, len(self.notifier.notifications)) # delete self.notifier.reset() self.stubs.Set(volume_types, 'destroy', return_volume_types_destroy) req = fakes.HTTPRequest.blank('/v2/fake/types/1') self.assertEqual(0, len(self.notifier.notifications)) self.controller._delete(req, '1') self.assertEqual(1, len(self.notifier.notifications)) # update again mock_update.side_effect = mock.MagicMock() body = {"volume_type": {"name": "vol_type_666_666"}} req = fakes.HTTPRequest.blank('/v2/fake/types/666') req.method = 'PUT' self.notifier.reset() self.assertEqual(0, len(self.notifier.notifications)) res_dict = self.controller._update(req, '666', body) self._check_test_results(res_dict, {'expected_name': 'vol_type_666', 'expected_desc': 'vol_type_desc_666'}) self.assertEqual(1, len(self.notifier.notifications))
def return_volume_types_create_duplicate_type(context, name, specs, is_public, description): raise exception.VolumeTypeExists(id=name)
def return_volume_types_update_exist(context, id, name, description): raise exception.VolumeTypeExists(id=id, name=name)