@@ -783,6 +783,8 @@ def test_project_show(self):
783783 columns , data = self .cmd .take_action (parsed_args )
784784 self .projects_mock .get .assert_called_with (
785785 identity_fakes .project_id ,
786+ parents_as_list = False ,
787+ subtree_as_list = False ,
786788 )
787789
788790 collist = ('description' , 'domain_id' , 'enabled' , 'id' , 'name' )
@@ -795,3 +797,151 @@ def test_project_show(self):
795797 identity_fakes .project_name ,
796798 )
797799 self .assertEqual (datalist , data )
800+
801+ def test_project_show_parents (self ):
802+ project = copy .deepcopy (identity_fakes .PROJECT_WITH_GRANDPARENT )
803+ project ['parents' ] = identity_fakes .grandparents
804+ self .projects_mock .get .return_value = fakes .FakeResource (
805+ None ,
806+ project ,
807+ loaded = True ,
808+ )
809+
810+ arglist = [
811+ identity_fakes .PROJECT_WITH_GRANDPARENT ['id' ],
812+ '--parents' ,
813+ ]
814+ verifylist = [
815+ ('project' , identity_fakes .PROJECT_WITH_GRANDPARENT ['id' ]),
816+ ('parents' , True ),
817+ ('children' , False ),
818+ ]
819+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
820+
821+ columns , data = self .cmd .take_action (parsed_args )
822+ self .projects_mock .get .assert_called_with (
823+ identity_fakes .PROJECT_WITH_GRANDPARENT ['id' ],
824+ parents_as_list = True ,
825+ subtree_as_list = False ,
826+ )
827+
828+ collist = (
829+ 'description' ,
830+ 'domain_id' ,
831+ 'enabled' ,
832+ 'id' ,
833+ 'name' ,
834+ 'parent_id' ,
835+ 'parents' ,
836+ )
837+ self .assertEqual (columns , collist )
838+ datalist = (
839+ identity_fakes .PROJECT_WITH_GRANDPARENT ['description' ],
840+ identity_fakes .PROJECT_WITH_GRANDPARENT ['domain_id' ],
841+ identity_fakes .PROJECT_WITH_GRANDPARENT ['enabled' ],
842+ identity_fakes .PROJECT_WITH_GRANDPARENT ['id' ],
843+ identity_fakes .PROJECT_WITH_GRANDPARENT ['name' ],
844+ identity_fakes .PROJECT_WITH_GRANDPARENT ['parent_id' ],
845+ identity_fakes .ids_for_parents_and_grandparents ,
846+ )
847+ self .assertEqual (data , datalist )
848+
849+ def test_project_show_subtree (self ):
850+ project = copy .deepcopy (identity_fakes .PROJECT_WITH_PARENT )
851+ project ['subtree' ] = identity_fakes .children
852+ self .projects_mock .get .return_value = fakes .FakeResource (
853+ None ,
854+ project ,
855+ loaded = True ,
856+ )
857+
858+ arglist = [
859+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
860+ '--children' ,
861+ ]
862+ verifylist = [
863+ ('project' , identity_fakes .PROJECT_WITH_PARENT ['id' ]),
864+ ('parents' , False ),
865+ ('children' , True ),
866+ ]
867+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
868+
869+ columns , data = self .cmd .take_action (parsed_args )
870+ self .projects_mock .get .assert_called_with (
871+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
872+ parents_as_list = False ,
873+ subtree_as_list = True ,
874+ )
875+
876+ collist = (
877+ 'description' ,
878+ 'domain_id' ,
879+ 'enabled' ,
880+ 'id' ,
881+ 'name' ,
882+ 'parent_id' ,
883+ 'subtree' ,
884+ )
885+ self .assertEqual (columns , collist )
886+ datalist = (
887+ identity_fakes .PROJECT_WITH_PARENT ['description' ],
888+ identity_fakes .PROJECT_WITH_PARENT ['domain_id' ],
889+ identity_fakes .PROJECT_WITH_PARENT ['enabled' ],
890+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
891+ identity_fakes .PROJECT_WITH_PARENT ['name' ],
892+ identity_fakes .PROJECT_WITH_PARENT ['parent_id' ],
893+ identity_fakes .ids_for_children ,
894+ )
895+ self .assertEqual (data , datalist )
896+
897+ def test_project_show_parents_and_children (self ):
898+ project = copy .deepcopy (identity_fakes .PROJECT_WITH_PARENT )
899+ project ['subtree' ] = identity_fakes .children
900+ project ['parents' ] = identity_fakes .parents
901+ self .projects_mock .get .return_value = fakes .FakeResource (
902+ None ,
903+ project ,
904+ loaded = True ,
905+ )
906+
907+ arglist = [
908+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
909+ '--parents' ,
910+ '--children' ,
911+ ]
912+ verifylist = [
913+ ('project' , identity_fakes .PROJECT_WITH_PARENT ['id' ]),
914+ ('parents' , True ),
915+ ('children' , True ),
916+ ]
917+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
918+
919+ columns , data = self .cmd .take_action (parsed_args )
920+ self .projects_mock .get .assert_called_with (
921+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
922+ parents_as_list = True ,
923+ subtree_as_list = True ,
924+ )
925+
926+ collist = (
927+ 'description' ,
928+ 'domain_id' ,
929+ 'enabled' ,
930+ 'id' ,
931+ 'name' ,
932+ 'parent_id' ,
933+ 'parents' ,
934+ 'subtree' ,
935+ )
936+ self .assertEqual (columns , collist )
937+ datalist = (
938+ identity_fakes .PROJECT_WITH_PARENT ['description' ],
939+ identity_fakes .PROJECT_WITH_PARENT ['domain_id' ],
940+ identity_fakes .PROJECT_WITH_PARENT ['enabled' ],
941+ identity_fakes .PROJECT_WITH_PARENT ['id' ],
942+ identity_fakes .PROJECT_WITH_PARENT ['name' ],
943+ identity_fakes .PROJECT_WITH_PARENT ['parent_id' ],
944+ identity_fakes .ids_for_parents ,
945+ identity_fakes .ids_for_children ,
946+ )
947+ self .assertEqual (data , datalist )
0 commit comments