summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2016-10-20 10:55:50 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2016-10-20 12:37:40 +0800
commit57d5f945402681e5f7d62b9ca99fc229927cc784 (patch)
treecb7a782c6b5e1925dc86bec7e11d22684fb01b84 /openstackclient/tests/unit
parentfee1a31296cb47de105d0fa70a509570151f9d81 (diff)
downloadpython-openstackclient-57d5f945402681e5f7d62b9ca99fc229927cc784.tar.gz
Allow input the QoS policy name in network rbac create command
We could input a QoS policy ID for the "rbac_object" parameter in "network rbac create" command but not name before. After this change, "rbac_object" parameter can be both QoS policy name or ID. Change-Id: I0fd6b5b5ae410074d85475ef49e5a0a9a52bf86f
Diffstat (limited to 'openstackclient/tests/unit')
-rw-r--r--openstackclient/tests/unit/network/v2/test_network_rbac.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/network/v2/test_network_rbac.py b/openstackclient/tests/unit/network/v2/test_network_rbac.py
index c526ae4e..b884dbc0 100644
--- a/openstackclient/tests/unit/network/v2/test_network_rbac.py
+++ b/openstackclient/tests/unit/network/v2/test_network_rbac.py
@@ -36,6 +36,7 @@ class TestNetworkRBAC(network_fakes.TestNetworkV2):
class TestCreateNetworkRBAC(TestNetworkRBAC):
network_object = network_fakes.FakeNetwork.create_one_network()
+ qos_object = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()
project = identity_fakes_v3.FakeProject.create_one_project()
rbac_policy = network_fakes.FakeNetworkRBAC.create_one_network_rbac(
attrs={'tenant_id': project.id,
@@ -71,6 +72,8 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
return_value=self.rbac_policy)
self.network.find_network = mock.Mock(
return_value=self.network_object)
+ self.network.find_qos_policy = mock.Mock(
+ return_value=self.qos_object)
self.projects_mock.get.return_value = self.project
def test_network_rbac_create_no_type(self):
@@ -194,6 +197,43 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+ def test_network_rbac_create_qos_object(self):
+ self.rbac_policy.object_type = 'qos_policy'
+ self.rbac_policy.object_id = self.qos_object.id
+ arglist = [
+ '--type', 'qos_policy',
+ '--action', self.rbac_policy.action,
+ '--target-project', self.rbac_policy.target_tenant,
+ self.qos_object.name,
+ ]
+ verifylist = [
+ ('type', 'qos_policy'),
+ ('action', self.rbac_policy.action),
+ ('target_project', self.rbac_policy.target_tenant),
+ ('rbac_object', self.qos_object.name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.network.create_rbac_policy.assert_called_with(**{
+ 'object_id': self.qos_object.id,
+ 'object_type': 'qos_policy',
+ 'action': self.rbac_policy.action,
+ 'target_tenant': self.rbac_policy.target_tenant,
+ })
+ self.data = [
+ self.rbac_policy.action,
+ self.rbac_policy.id,
+ self.qos_object.id,
+ 'qos_policy',
+ self.rbac_policy.tenant_id,
+ self.rbac_policy.target_tenant,
+ ]
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
class TestDeleteNetworkRBAC(TestNetworkRBAC):