@@ -159,21 +159,6 @@ def test_ignored_fields(self):
159159 self .assertNotIn ('"password1":' , out )
160160 self .assertNotIn ('"password2":' , out )
161161
162- @override_settings (AUDIT_USERNAME_FIELD = 'email' )
163- def test_message_custom_user_field (self ):
164- req = self ._post (data = {
165- 166- "password" : "secret" ,
167- })
168-
169- with self .assertLogs ('auditing' , level = 'INFO' ) as cm :
170- login_logger (
171- self .mock_sender ,
172- user = MockUser (
username = '[email protected] ' ),
173- request = req )
174-
175- self .
assertIn (
'"username": "[email protected] "' ,
cm .
output [
0 ])
176-
177162
178163class LoginFailedLoggerReceiverTestCase (SignalsBaseTestCase ):
179164
@@ -218,7 +203,7 @@ def test_ignored_fields(self):
218203 self .assertNotIn ('"password1": ' , out )
219204 self .assertNotIn ('"password2": ' , out )
220205
221- @override_settings (AUDIT_USERNAME_FIELD = 'email' )
206+ @override_settings (AUDIT_USERNAME_FIELDS = [ 'email' ] )
222207 def test_message_custom_user_field (self ):
223208 req = self ._post (data = {
224209@@ -233,6 +218,38 @@ def test_message_custom_user_field(self):
233218
234219 self .assertIn ('"username": "wrong"' , cm .output [0 ])
235220
221+ @override_settings (AUDIT_USERNAME_FIELDS = ['email' , 'username' ])
222+ def test_message_fallback_user_field (self ):
223+ req = self ._post (data = {
224+ "username" : "tester" ,
225+ "password" : "secret" ,
226+ })
227+
228+ with self .assertLogs ('auditing' , level = 'INFO' ) as cm :
229+ login_failed_logger (
230+ self .mock_sender ,
231+ credentials = {'username' : 'wrong' , 'password' : '************' },
232+ request = req )
233+
234+ self .assertIn ('"username": "wrong"' , cm .output [0 ])
235+
236+ @override_settings (AUDIT_USERNAME_FIELDS = ['email' ])
237+ def test_user_field_not_found_raises_error (self ):
238+ req = self ._post (data = {
239+ "username" : "tester" ,
240+ "password" : "secret" ,
241+ })
242+
243+ with self .assertRaises (KeyError ) as err :
244+ login_failed_logger (
245+ self .mock_sender ,
246+ credentials = {'username' : 'wrong' , 'password' : '************' },
247+ request = req )
248+
249+ self .assertEqual (
250+ "'Valid username not found in credentials.'" ,
251+ str (err .exception ))
252+
236253
237254class LogoutLoggerReceiverTestCase (SignalsBaseTestCase ):
238255
@@ -282,21 +299,6 @@ def test_ignored_fields(self):
282299 self .assertNotIn ('"password1":' , out )
283300 self .assertNotIn ('"password2":' , out )
284301
285- @override_settings (AUDIT_USERNAME_FIELD = 'email' )
286- def test_message_custom_user_field (self ):
287- req = self ._post (data = {
288- 289- "password" : "secret" ,
290- })
291-
292- with self .assertLogs ('auditing' , level = 'INFO' ) as cm :
293- logout_logger (
294- self .mock_sender ,
295- user = MockUser (
'[email protected] ' ),
296- request = req )
297-
298- self .
assertIn (
'"username": "[email protected] "' ,
cm .
output [
0 ])
299-
300302
301303class HTTPHeadersLoggingMiddlewareTestCase (TestCase ):
302304
0 commit comments