@@ -947,7 +947,7 @@ def test_project_list_my_projects(self):
947947class TestProjectSet (TestProject ):
948948 domain = identity_fakes .FakeDomain .create_one_domain ()
949949 project = identity_fakes .FakeProject .create_one_project (
950- attrs = {'domain_id' : domain .id }
950+ attrs = {'domain_id' : domain .id , 'tags' : [ 'tag1' , 'tag2' , 'tag3' ] }
951951 )
952952
953953 def setUp (self ):
@@ -1127,13 +1127,38 @@ def test_project_set_tags(self):
11271127
11281128 result = self .cmd .take_action (parsed_args )
11291129
1130- # Set expected values
1131- kwargs = {'name' : 'qwerty' , 'tags' : ['foo' ]}
1130+ # Set expected values. new tag is added to original tags for update.
1131+ kwargs = {
1132+ 'name' : 'qwerty' ,
1133+ 'tags' : list (set (['tag1' , 'tag2' , 'tag3' , 'foo' ])),
1134+ }
11321135 # ProjectManager.update(project, name=, domain=, description=,
11331136 # enabled=, **kwargs)
11341137 self .projects_mock .update .assert_called_with (self .project .id , ** kwargs )
11351138 self .assertIsNone (result )
11361139
1140+ def test_project_remove_tags (self ):
1141+ arglist = [
1142+ '--remove-tag' ,
1143+ 'tag1' ,
1144+ '--remove-tag' ,
1145+ 'tag2' ,
1146+ self .project .name ,
1147+ ]
1148+ verifylist = [
1149+ ('enable' , False ),
1150+ ('disable' , False ),
1151+ ('project' , self .project .name ),
1152+ ('remove_tag' , ['tag1' , 'tag2' ]),
1153+ ]
1154+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1155+
1156+ result = self .cmd .take_action (parsed_args )
1157+
1158+ kwargs = {'tags' : list (set (['tag3' ]))}
1159+ self .projects_mock .update .assert_called_with (self .project .id , ** kwargs )
1160+ self .assertIsNone (result )
1161+
11371162 def test_project_set_with_immutable_option (self ):
11381163 arglist = [
11391164 '--domain' ,
0 commit comments