mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #29176 -- Fixed AbstractBaseUser.normalize_username() crash if username isn't a string.
This commit is contained in:
		
				
					committed by
					
						 Tim Graham
						Tim Graham
					
				
			
			
				
	
			
			
			
						parent
						
							a2e97abd81
						
					
				
				
					commit
					40bac28faa
				
			| @@ -138,4 +138,4 @@ class AbstractBaseUser(models.Model): | ||||
|  | ||||
|     @classmethod | ||||
|     def normalize_username(cls, username): | ||||
|         return unicodedata.normalize('NFKC', username) if username else username | ||||
|         return unicodedata.normalize('NFKC', username) if isinstance(username, str) else username | ||||
|   | ||||
| @@ -28,3 +28,6 @@ Bugfixes | ||||
|  | ||||
| * Fixed crash when using a ``Window()`` expression in a subquery | ||||
|   (:ticket:`29172`). | ||||
|  | ||||
| * Fixed ``AbstractBaseUser.normalize_username()`` crash if the ``username`` | ||||
|   argument isn't a string (:ticket:`29176`). | ||||
|   | ||||
| @@ -12,6 +12,7 @@ from django.core import mail | ||||
| from django.db.models.signals import post_save | ||||
| from django.test import SimpleTestCase, TestCase, override_settings | ||||
|  | ||||
| from .models import IntegerUsernameUser | ||||
| from .models.with_custom_email_field import CustomEmailField | ||||
|  | ||||
|  | ||||
| @@ -157,6 +158,9 @@ class UserManagerTestCase(TestCase): | ||||
|  | ||||
| class AbstractBaseUserTests(TestCase): | ||||
|  | ||||
|     def test_normalize_username(self): | ||||
|         self.assertEqual(IntegerUsernameUser().normalize_username(123), 123) | ||||
|  | ||||
|     def test_clean_normalize_username(self): | ||||
|         # The normalization happens in AbstractBaseUser.clean() | ||||
|         ohm_username = 'iamtheΩ'  # U+2126 OHM SIGN | ||||
|   | ||||
		Reference in New Issue
	
	Block a user