@@ -37,6 +37,7 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
3737
3838 network_object = network_fakes .FakeNetwork .create_one_network ()
3939 qos_object = network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
40+ sg_object = network_fakes .FakeNetworkSecGroup .create_one_security_group ()
4041 project = identity_fakes_v3 .FakeProject .create_one_project ()
4142 rbac_policy = network_fakes .FakeNetworkRBAC .create_one_network_rbac (
4243 attrs = {'tenant_id' : project .id ,
@@ -74,6 +75,8 @@ def setUp(self):
7475 return_value = self .network_object )
7576 self .network .find_qos_policy = mock .Mock (
7677 return_value = self .qos_object )
78+ self .network .find_security_group = mock .Mock (
79+ return_value = self .sg_object )
7780 self .projects_mock .get .return_value = self .project
7881
7982 def test_network_rbac_create_no_type (self ):
@@ -258,6 +261,43 @@ def test_network_rbac_create_qos_object(self):
258261 self .assertEqual (self .columns , columns )
259262 self .assertEqual (self .data , list (data ))
260263
264+ def test_network_rbac_create_security_group_object (self ):
265+ self .rbac_policy .object_type = 'security_group'
266+ self .rbac_policy .object_id = self .sg_object .id
267+ arglist = [
268+ '--type' , 'security_group' ,
269+ '--action' , self .rbac_policy .action ,
270+ '--target-project' , self .rbac_policy .target_tenant ,
271+ self .sg_object .name ,
272+ ]
273+ verifylist = [
274+ ('type' , 'security_group' ),
275+ ('action' , self .rbac_policy .action ),
276+ ('target_project' , self .rbac_policy .target_tenant ),
277+ ('rbac_object' , self .sg_object .name ),
278+ ]
279+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
280+
281+ # DisplayCommandBase.take_action() returns two tuples
282+ columns , data = self .cmd .take_action (parsed_args )
283+
284+ self .network .create_rbac_policy .assert_called_with (** {
285+ 'object_id' : self .sg_object .id ,
286+ 'object_type' : 'security_group' ,
287+ 'action' : self .rbac_policy .action ,
288+ 'target_tenant' : self .rbac_policy .target_tenant ,
289+ })
290+ self .data = [
291+ self .rbac_policy .action ,
292+ self .rbac_policy .id ,
293+ self .sg_object .id ,
294+ 'security_group' ,
295+ self .rbac_policy .tenant_id ,
296+ self .rbac_policy .target_tenant ,
297+ ]
298+ self .assertEqual (self .columns , columns )
299+ self .assertEqual (self .data , list (data ))
300+
261301
262302class TestDeleteNetworkRBAC (TestNetworkRBAC ):
263303
0 commit comments