@@ -332,6 +332,7 @@ def test_role_create_no_options(self):
332332 kwargs = {
333333 'domain' : None ,
334334 'name' : identity_fakes .role_name ,
335+ 'description' : None ,
335336 }
336337
337338 # RoleManager.create(name=, domain=)
@@ -375,6 +376,7 @@ def test_role_create_with_domain(self):
375376 kwargs = {
376377 'domain' : identity_fakes .domain_id ,
377378 'name' : identity_fakes .ROLE_2 ['name' ],
379+ 'description' : None ,
378380 }
379381
380382 # RoleManager.create(name=, domain=)
@@ -391,6 +393,49 @@ def test_role_create_with_domain(self):
391393 )
392394 self .assertEqual (datalist , data )
393395
396+ def test_role_create_with_description (self ):
397+
398+ self .roles_mock .create .return_value = fakes .FakeResource (
399+ None ,
400+ copy .deepcopy (identity_fakes .ROLE_2 ),
401+ loaded = True ,
402+ )
403+ arglist = [
404+ '--description' , identity_fakes .role_description ,
405+ identity_fakes .ROLE_2 ['name' ],
406+ ]
407+ verifylist = [
408+ ('description' , identity_fakes .role_description ),
409+ ('name' , identity_fakes .ROLE_2 ['name' ]),
410+ ]
411+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
412+
413+ # In base command class ShowOne in cliff, abstract method take_action()
414+ # returns a two-part tuple with a tuple of column names and a tuple of
415+ # data to be shown.
416+ columns , data = self .cmd .take_action (parsed_args )
417+
418+ # Set expected values
419+ kwargs = {
420+ 'description' : identity_fakes .role_description ,
421+ 'name' : identity_fakes .ROLE_2 ['name' ],
422+ 'domain' : None ,
423+ }
424+
425+ # RoleManager.create(name=, domain=)
426+ self .roles_mock .create .assert_called_with (
427+ ** kwargs
428+ )
429+
430+ collist = ('domain' , 'id' , 'name' )
431+ self .assertEqual (collist , columns )
432+ datalist = (
433+ 'd1' ,
434+ identity_fakes .ROLE_2 ['id' ],
435+ identity_fakes .ROLE_2 ['name' ],
436+ )
437+ self .assertEqual (datalist , data )
438+
394439
395440class TestRoleDelete (TestRole ):
396441
@@ -1057,6 +1102,7 @@ def test_role_set_no_options(self):
10571102 # Set expected values
10581103 kwargs = {
10591104 'name' : 'over' ,
1105+ 'description' : None ,
10601106 }
10611107 # RoleManager.update(role, name=)
10621108 self .roles_mock .update .assert_called_with (
@@ -1088,6 +1134,39 @@ def test_role_set_domain_role(self):
10881134 # Set expected values
10891135 kwargs = {
10901136 'name' : 'over' ,
1137+ 'description' : None ,
1138+ }
1139+ # RoleManager.update(role, name=)
1140+ self .roles_mock .update .assert_called_with (
1141+ identity_fakes .ROLE_2 ['id' ],
1142+ ** kwargs
1143+ )
1144+ self .assertIsNone (result )
1145+
1146+ def test_role_set_description (self ):
1147+ self .roles_mock .get .return_value = fakes .FakeResource (
1148+ None ,
1149+ copy .deepcopy (identity_fakes .ROLE_2 ),
1150+ loaded = True ,
1151+ )
1152+ arglist = [
1153+ '--name' , 'over' ,
1154+ '--description' , identity_fakes .role_description ,
1155+ identity_fakes .ROLE_2 ['name' ],
1156+ ]
1157+ verifylist = [
1158+ ('name' , 'over' ),
1159+ ('description' , identity_fakes .role_description ),
1160+ ('role' , identity_fakes .ROLE_2 ['name' ]),
1161+ ]
1162+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1163+
1164+ result = self .cmd .take_action (parsed_args )
1165+
1166+ # Set expected values
1167+ kwargs = {
1168+ 'name' : 'over' ,
1169+ 'description' : identity_fakes .role_description ,
10911170 }
10921171 # RoleManager.update(role, name=)
10931172 self .roles_mock .update .assert_called_with (
0 commit comments