@@ -78,8 +78,15 @@ def test_any_user_allowed(self):
7878 def test_any_user_allowed_when_mixed (self ):
7979 self .assertAllowed ('user5' , ['user1' , ANY_USER , 'user2' ], True )
8080
81- def assertAllowed (self , user , allowed_users , expected_allowed ):
82- authorizer = Authorizer (allowed_users , [], EmptyGroupProvider ())
81+ def test_allowed_user_when_in_group (self ):
82+ self .assertAllowed ('user5' , ['user1' , 'user2' , '@my_group' ], True , groups = {'my_group' : ['user5' ]})
83+
84+ def test_not_allowed_user_when_not_in_group (self ):
85+ self .assertAllowed ('user5' , ['user1' , 'user2' , '@my_group' ], False , groups = {'my_group' : ['user3' ]})
86+
87+ def assertAllowed (self , user , allowed_users , expected_allowed , groups = None ):
88+ group_provider = PreconfiguredGroupProvider (groups ) if groups else EmptyGroupProvider ()
89+ authorizer = Authorizer (allowed_users , [], group_provider )
8390
8491 allowed = authorizer .is_allowed_in_app (user )
8592 if allowed != expected_allowed :
@@ -103,8 +110,15 @@ def test_any_user_is_admin(self):
103110 def test_any_admin_when_mixed (self ):
104111 self .assertAdmin ('admin5' , ['admin1' , ANY_USER , 'admin2' ], True )
105112
106- def assertAdmin (self , user , admin_users , expected_allowed ):
107- authorizer = Authorizer ([], admin_users , EmptyGroupProvider ())
113+ def test_is_admin_when_in_group (self ):
114+ self .assertAdmin ('admin5' , ['admin1' , 'admin2' , '@my_group' ], True , groups = {'my_group' : ['admin5' ]})
115+
116+ def test_not_admin_admin_when_not_in_group (self ):
117+ self .assertAdmin ('admin5' , ['admin1' , 'admin2' , '@my_group' ], False , groups = {'my_group' : ['admin3' ]})
118+
119+ def assertAdmin (self , user , admin_users , expected_allowed , groups = None ):
120+ group_provider = PreconfiguredGroupProvider (groups ) if groups else EmptyGroupProvider ()
121+ authorizer = Authorizer ([], admin_users , group_provider )
108122
109123 allowed = authorizer .is_admin (user )
110124 if allowed != expected_allowed :
@@ -183,6 +197,16 @@ def test_create_from_group_and_admin_users_when_admin_group_exists(self):
183197 self .assertCountEqual (provider .get_groups ('user1' ), ['group1' ])
184198 self .assertCountEqual (provider .get_groups ('user2' ), ['admin_users' ])
185199
200+ def test_create_from_group_and_admin_users_when_admin_group_has_unknown_group (self ):
201+ provider = create_group_provider ({'group1' : ['user1' ]}, None , ['user2' , '@some_group' ])
202+ self .assertCountEqual (provider .get_groups ('user1' ), ['group1' ])
203+ self .assertCountEqual (provider .get_groups ('user2' ), ['admin_users' ])
204+
205+ def test_create_from_group_including_admin_users_when_admin_group_has_unknown_group (self ):
206+ provider = create_group_provider ({'group1' : ['user1' , '@admin_users' ]}, None , ['user2' , '@some_group' ])
207+ self .assertCountEqual (provider .get_groups ('user1' ), ['group1' ])
208+ self .assertCountEqual (provider .get_groups ('user2' ), ['admin_users' , 'group1' ])
209+
186210 def test_create_from_groups_and_empty_authenticator (self ):
187211 auth = self ._create_authenticator ({})
188212 provider = create_group_provider ({'group1' : ['user1' ]}, auth , None )
0 commit comments