@@ -218,6 +218,50 @@ def test_remote_auth_remote_groups_default(self):
218218 list (new_user .groups .all ())
219219 )
220220
221+ @override_settings (
222+ REMOTE_AUTH_ENABLED = True ,
223+ REMOTE_AUTH_AUTO_CREATE_USER = True ,
224+ REMOTE_AUTH_GROUP_SYNC_ENABLED = True ,
225+ REMOTE_AUTH_AUTO_CREATE_GROUPS = True ,
226+ LOGIN_REQUIRED = True ,
227+ )
228+ def test_remote_auth_remote_groups_autocreate (self ):
229+ """
230+ Test enabling remote authentication with group sync and autocreate
231+ enabled with the default configuration.
232+ """
233+ headers = {
234+ "HTTP_REMOTE_USER" : "remoteuser2" ,
235+ "HTTP_REMOTE_USER_GROUP" : "Group 1|Group 2" ,
236+ }
237+
238+ self .assertTrue (settings .REMOTE_AUTH_ENABLED )
239+ self .assertTrue (settings .REMOTE_AUTH_AUTO_CREATE_USER )
240+ self .assertTrue (settings .REMOTE_AUTH_AUTO_CREATE_GROUPS )
241+ self .assertTrue (settings .REMOTE_AUTH_GROUP_SYNC_ENABLED )
242+ self .assertEqual (settings .REMOTE_AUTH_HEADER , "HTTP_REMOTE_USER" )
243+ self .assertEqual (settings .REMOTE_AUTH_GROUP_HEADER , "HTTP_REMOTE_USER_GROUP" )
244+ self .assertEqual (settings .REMOTE_AUTH_GROUP_SEPARATOR , "|" )
245+
246+ groups = (
247+ Group (name = "Group 1" ),
248+ Group (name = "Group 2" ),
249+ )
250+
251+ response = self .client .get (reverse ("home" ), follow = True , ** headers )
252+ self .assertEqual (response .status_code , 200 )
253+
254+ new_user = User .objects .get (username = "remoteuser2" )
255+ self .assertEqual (
256+ int (self .client .session .get ("_auth_user_id" )),
257+ new_user .pk ,
258+ msg = "Authentication failed" ,
259+ )
260+ self .assertListEqual (
261+ [group .name for group in groups ],
262+ [group .name for group in list (new_user .groups .all ())],
263+ )
264+
221265 @override_settings (
222266 REMOTE_AUTH_ENABLED = True ,
223267 REMOTE_AUTH_AUTO_CREATE_USER = True ,
0 commit comments