Logical error in flavors unset_keys method

When we want to unset multi keys of flavor
extra data, only first key can be removed
because of the key word named 'return'.
To fix it, remove the return key word

Change-Id: I70d1f2e84a2bfcea1db60b26138f84421f9a7309
Closes-bug: #1324077
This commit is contained in:
zhangjl 2014-05-28 19:24:35 +08:00
parent c7c653d513
commit abd4e8986b
4 changed files with 26 additions and 12 deletions

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from novaclient import exceptions
from novaclient.tests import utils
from novaclient.tests.v1_1 import fakes
@ -206,7 +208,12 @@ class FlavorsTest(utils.TestCase):
for key in invalid_keys:
self.assertRaises(exceptions.CommandError, f.set_keys, {key: 'v1'})
def test_unset_keys(self):
@mock.patch.object(flavors.FlavorManager, '_delete')
def test_unset_keys(self, mock_delete):
f = self.cs.flavors.get(1)
f.unset_keys(['k1'])
self.cs.assert_called('DELETE', '/flavors/1/os-extra_specs/k1')
keys = ['k1', 'k2']
f.unset_keys(keys)
mock_delete.assert_has_calls([
mock.call("/flavors/1/os-extra_specs/k1"),
mock.call("/flavors/1/os-extra_specs/k2")
])

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from novaclient.tests.v1_1 import test_flavors
from novaclient.tests.v3 import fakes
from novaclient.v3 import flavors
@ -57,10 +59,15 @@ class FlavorsTest(test_flavors.FlavorsTest):
self.cs.assert_called('POST', '/flavors/4/flavor-extra-specs',
{"extra_specs": {key: 'v4'}})
def test_unset_keys(self):
@mock.patch.object(flavors.FlavorManager, '_delete')
def test_unset_keys(self, mock_delete):
f = self.cs.flavors.get(1)
f.unset_keys(['k1'])
self.cs.assert_called('DELETE', '/flavors/1/flavor-extra-specs/k1')
keys = ['k1', 'k2']
f.unset_keys(keys)
mock_delete.assert_has_calls([
mock.call("/flavors/1/flavor-extra-specs/k1"),
mock.call("/flavors/1/flavor-extra-specs/k2")
])
def test_get_flavor_details_diablo(self):
# Don't need for V3 API to work against diablo

View File

@ -83,9 +83,9 @@ class Flavor(base.Resource):
:param keys: A list of keys to be unset
"""
for k in keys:
return self.manager._delete(
"/flavors/%s/os-extra_specs/%s" % (
base.getid(self), k))
self.manager._delete(
"/flavors/%s/os-extra_specs/%s" % (
base.getid(self), k))
def delete(self):
"""

View File

@ -72,9 +72,9 @@ class Flavor(base.Resource):
:param keys: A list of keys to be unset
"""
for k in keys:
return self.manager._delete(
"/flavors/%s/flavor-extra-specs/%s" % (
base.getid(self), k))
self.manager._delete(
"/flavors/%s/flavor-extra-specs/%s" % (
base.getid(self), k))
def delete(self):
"""