Add tests for volume quota set

Add some tests for volume quota set and get rid of TODO about
using the value instead of the key to get the attribute.

Change-Id: I57aa57951aeea65965966e63af922cda532d759d
This commit is contained in:
TerryHowe 2015-08-11 14:40:53 -06:00
parent 0cc1e5aa2b
commit b1ce0356f2
2 changed files with 46 additions and 2 deletions

View File

@ -103,8 +103,7 @@ class SetQuota(command.Command):
volume_kwargs = {}
for k, v in VOLUME_QUOTAS.items():
# TODO(jiaxi): Should use k or v needs discuss
value = getattr(parsed_args, v, None)
value = getattr(parsed_args, k, None)
if value is not None:
if parsed_args.volume_type:
k = k + '_%s' % parsed_args.volume_type

View File

@ -12,6 +12,8 @@
import copy
import mock
from openstackclient.common import quota
from openstackclient.tests.compute.v2 import fakes as compute_fakes
from openstackclient.tests import fakes
@ -38,6 +40,11 @@ class TestQuota(compute_fakes.TestComputev2):
super(TestQuota, self).setUp()
self.quotas_mock = self.app.client_manager.compute.quotas
self.quotas_mock.reset_mock()
volume_mock = mock.Mock()
volume_mock.quotas = mock.Mock()
self.app.client_manager.volume = volume_mock
self.volume_quotas_mock = volume_mock.quotas
self.volume_quotas_mock.reset_mock()
class TestQuotaSet(TestQuota):
@ -57,6 +64,18 @@ class TestQuotaSet(TestQuota):
loaded=True,
)
self.volume_quotas_mock.find.return_value = FakeQuotaResource(
None,
copy.deepcopy(compute_fakes.QUOTA),
loaded=True,
)
self.volume_quotas_mock.update.return_value = FakeQuotaResource(
None,
copy.deepcopy(compute_fakes.QUOTA),
loaded=True,
)
self.cmd = quota.SetQuota(self.app, None)
def test_quota_set(self):
@ -87,3 +106,29 @@ class TestQuotaSet(TestQuota):
}
self.quotas_mock.update.assert_called_with('project_test', **kwargs)
def test_quota_set_volume(self):
arglist = [
'--gigabytes', str(compute_fakes.floating_ip_num),
'--snapshots', str(compute_fakes.fix_ip_num),
'--volumes', str(compute_fakes.injected_file_num),
compute_fakes.project_name,
]
verifylist = [
('gigabytes', compute_fakes.floating_ip_num),
('snapshots', compute_fakes.fix_ip_num),
('volumes', compute_fakes.injected_file_num),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
kwargs = {
'gigabytes': compute_fakes.floating_ip_num,
'snapshots': compute_fakes.fix_ip_num,
'volumes': compute_fakes.injected_file_num,
}
self.volume_quotas_mock.update.assert_called_with('project_test',
**kwargs)