Coverage for accounts/tests/test_forms.py: 100.00%

15 statements  

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

1import pytest 

2 

3from ..forms import CustomUserCreationForm 

4from .factories import UserFactory 

5 

6pytestmark = pytest.mark.django_db 

7 

8 

9class TestUserCreationForm: 

10 def test_clean_username(self): 

11 user = UserFactory.build() 1a

12 

13 form = CustomUserCreationForm( 1a

14 # fmt: off 

15 { 

16 "username": user.username, 

17 "password1": user._password, 

18 "password2": user._password, 

19 } 

20 # fmt: on 

21 ) 

22 

23 assert form.is_valid() 1a

24 assert form.clean_username() == user.username 1a

25 

26 # Creating a user. 

27 form.save() 1a

28 

29 # The user with proto_user params already exists, 

30 # hence cannot be created. 

31 form = CustomUserCreationForm( 1a

32 # fmt: off 

33 { 

34 "username": user.username, 

35 "password1": user._password, 

36 "password2": user._password, 

37 } 

38 # fmt: on 

39 ) 

40 

41 assert not form.is_valid() 1a

42 assert len(form.errors) == 1 1a

43 assert "username" in form.errors 1a