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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user