@@ -36,6 +36,7 @@ def setUp(self):
3636class TestCreateNetworkRBAC (TestNetworkRBAC ):
3737
3838 network_object = network_fakes .FakeNetwork .create_one_network ()
39+ qos_object = network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
3940 project = identity_fakes_v3 .FakeProject .create_one_project ()
4041 rbac_policy = network_fakes .FakeNetworkRBAC .create_one_network_rbac (
4142 attrs = {'tenant_id' : project .id ,
@@ -71,6 +72,8 @@ def setUp(self):
7172 return_value = self .rbac_policy )
7273 self .network .find_network = mock .Mock (
7374 return_value = self .network_object )
75+ self .network .find_qos_policy = mock .Mock (
76+ return_value = self .qos_object )
7477 self .projects_mock .get .return_value = self .project
7578
7679 def test_network_rbac_create_no_type (self ):
@@ -194,6 +197,43 @@ def test_network_rbac_create_all_options(self):
194197 self .assertEqual (self .columns , columns )
195198 self .assertEqual (self .data , list (data ))
196199
200+ def test_network_rbac_create_qos_object (self ):
201+ self .rbac_policy .object_type = 'qos_policy'
202+ self .rbac_policy .object_id = self .qos_object .id
203+ arglist = [
204+ '--type' , 'qos_policy' ,
205+ '--action' , self .rbac_policy .action ,
206+ '--target-project' , self .rbac_policy .target_tenant ,
207+ self .qos_object .name ,
208+ ]
209+ verifylist = [
210+ ('type' , 'qos_policy' ),
211+ ('action' , self .rbac_policy .action ),
212+ ('target_project' , self .rbac_policy .target_tenant ),
213+ ('rbac_object' , self .qos_object .name ),
214+ ]
215+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
216+
217+ # DisplayCommandBase.take_action() returns two tuples
218+ columns , data = self .cmd .take_action (parsed_args )
219+
220+ self .network .create_rbac_policy .assert_called_with (** {
221+ 'object_id' : self .qos_object .id ,
222+ 'object_type' : 'qos_policy' ,
223+ 'action' : self .rbac_policy .action ,
224+ 'target_tenant' : self .rbac_policy .target_tenant ,
225+ })
226+ self .data = [
227+ self .rbac_policy .action ,
228+ self .rbac_policy .id ,
229+ self .qos_object .id ,
230+ 'qos_policy' ,
231+ self .rbac_policy .tenant_id ,
232+ self .rbac_policy .target_tenant ,
233+ ]
234+ self .assertEqual (self .columns , columns )
235+ self .assertEqual (self .data , list (data ))
236+
197237
198238class TestDeleteNetworkRBAC (TestNetworkRBAC ):
199239
0 commit comments