@@ -245,6 +245,46 @@ def test_project_create_disable(self):
245245 )
246246 self .assertEqual (data , datalist )
247247
248+ def test_project_create_property (self ):
249+ arglist = [
250+ '--property' , 'fee=fi' ,
251+ '--property' , 'fo=fum' ,
252+ identity_fakes .project_name ,
253+ ]
254+ verifylist = [
255+ ('property' , {'fee' : 'fi' , 'fo' : 'fum' }),
256+ ('name' , identity_fakes .project_name ),
257+ ]
258+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
259+
260+ # DisplayCommandBase.take_action() returns two tuples
261+ columns , data = self .cmd .take_action (parsed_args )
262+
263+ # Set expected values
264+ kwargs = {
265+ 'description' : None ,
266+ 'enabled' : True ,
267+ 'fee' : 'fi' ,
268+ 'fo' : 'fum' ,
269+ }
270+ # ProjectManager.create(name, domain, description=, enabled=, **kwargs)
271+ self .projects_mock .create .assert_called_with (
272+ identity_fakes .project_name ,
273+ None ,
274+ ** kwargs
275+ )
276+
277+ collist = ('description' , 'domain_id' , 'enabled' , 'id' , 'name' )
278+ self .assertEqual (columns , collist )
279+ datalist = (
280+ identity_fakes .project_description ,
281+ identity_fakes .domain_id ,
282+ True ,
283+ identity_fakes .project_id ,
284+ identity_fakes .project_name ,
285+ )
286+ self .assertEqual (data , datalist )
287+
248288
249289class TestProjectDelete (TestProject ):
250290
@@ -488,6 +528,35 @@ def test_project_set_disable(self):
488528 ** kwargs
489529 )
490530
531+ def test_project_set_property (self ):
532+ arglist = [
533+ '--property' , 'fee=fi' ,
534+ '--property' , 'fo=fum' ,
535+ identity_fakes .project_name ,
536+ ]
537+ verifylist = [
538+ ('property' , {'fee' : 'fi' , 'fo' : 'fum' }),
539+ ('project' , identity_fakes .project_name ),
540+ ]
541+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
542+
543+ result = self .cmd .run (parsed_args )
544+ self .assertEqual (result , 0 )
545+
546+ # Set expected values
547+ kwargs = {
548+ 'description' : identity_fakes .project_description ,
549+ 'domain' : identity_fakes .domain_id ,
550+ 'enabled' : True ,
551+ 'name' : identity_fakes .project_name ,
552+ 'fee' : 'fi' ,
553+ 'fo' : 'fum' ,
554+ }
555+ self .projects_mock .update .assert_called_with (
556+ identity_fakes .project_id ,
557+ ** kwargs
558+ )
559+
491560
492561class TestProjectShow (TestProject ):
493562
0 commit comments