Skip to content

Commit b1ce035

Browse files
committed
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
1 parent 0cc1e5a commit b1ce035

2 files changed

Lines changed: 46 additions & 2 deletions

File tree

openstackclient/common/quota.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@ def take_action(self, parsed_args):
103103

104104
volume_kwargs = {}
105105
for k, v in VOLUME_QUOTAS.items():
106-
# TODO(jiaxi): Should use k or v needs discuss
107-
value = getattr(parsed_args, v, None)
106+
value = getattr(parsed_args, k, None)
108107
if value is not None:
109108
if parsed_args.volume_type:
110109
k = k + '_%s' % parsed_args.volume_type

openstackclient/tests/common/test_quota.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import copy
1414

15+
import mock
16+
1517
from openstackclient.common import quota
1618
from openstackclient.tests.compute.v2 import fakes as compute_fakes
1719
from openstackclient.tests import fakes
@@ -38,6 +40,11 @@ def setUp(self):
3840
super(TestQuota, self).setUp()
3941
self.quotas_mock = self.app.client_manager.compute.quotas
4042
self.quotas_mock.reset_mock()
43+
volume_mock = mock.Mock()
44+
volume_mock.quotas = mock.Mock()
45+
self.app.client_manager.volume = volume_mock
46+
self.volume_quotas_mock = volume_mock.quotas
47+
self.volume_quotas_mock.reset_mock()
4148

4249

4350
class TestQuotaSet(TestQuota):
@@ -57,6 +64,18 @@ def setUp(self):
5764
loaded=True,
5865
)
5966

67+
self.volume_quotas_mock.find.return_value = FakeQuotaResource(
68+
None,
69+
copy.deepcopy(compute_fakes.QUOTA),
70+
loaded=True,
71+
)
72+
73+
self.volume_quotas_mock.update.return_value = FakeQuotaResource(
74+
None,
75+
copy.deepcopy(compute_fakes.QUOTA),
76+
loaded=True,
77+
)
78+
6079
self.cmd = quota.SetQuota(self.app, None)
6180

6281
def test_quota_set(self):
@@ -87,3 +106,29 @@ def test_quota_set(self):
87106
}
88107

89108
self.quotas_mock.update.assert_called_with('project_test', **kwargs)
109+
110+
def test_quota_set_volume(self):
111+
arglist = [
112+
'--gigabytes', str(compute_fakes.floating_ip_num),
113+
'--snapshots', str(compute_fakes.fix_ip_num),
114+
'--volumes', str(compute_fakes.injected_file_num),
115+
compute_fakes.project_name,
116+
]
117+
verifylist = [
118+
('gigabytes', compute_fakes.floating_ip_num),
119+
('snapshots', compute_fakes.fix_ip_num),
120+
('volumes', compute_fakes.injected_file_num),
121+
]
122+
123+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
124+
125+
self.cmd.take_action(parsed_args)
126+
127+
kwargs = {
128+
'gigabytes': compute_fakes.floating_ip_num,
129+
'snapshots': compute_fakes.fix_ip_num,
130+
'volumes': compute_fakes.injected_file_num,
131+
}
132+
133+
self.volume_quotas_mock.update.assert_called_with('project_test',
134+
**kwargs)

0 commit comments

Comments
 (0)