Coverage for accounts/forms.py: 100.00%

20 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-08 13:12 -0700

1from django.contrib.auth import get_user_model 

2from django.contrib.auth.forms import UserChangeForm, UserCreationForm 

3from django.core.exceptions import ValidationError 

4 

5User = get_user_model() 

6 

7 

8class CustomUserChangeForm(UserChangeForm): 

9 class Meta: 

10 model = User 

11 fields = ( 

12 "email", 

13 "username", 

14 "profile_pic", 

15 ) 

16 

17 

18class CustomUserCreationForm(UserCreationForm): 

19 error_message = UserCreationForm.error_messages.update( 

20 {"duplicate_username": "This username has already been taken."} # fmt: skip 

21 ) 

22 

23 class Meta: 

24 model = User 

25 fields = ( 

26 "email", 

27 "username", 

28 "profile_pic", 

29 ) 

30 

31 def clean_username(self): 

32 username = self.cleaned_data["username"] 1b

33 

34 try: 1b

35 User.objects.get(username=username) 1b

36 except User.DoesNotExist: 1b

37 return username 1b

38 

39 raise ValidationError(self.error_messages["duplicate_username"]) 1b