40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| from funkwhale_api.users.admin import MyUserCreationForm
 | |
| 
 | |
| 
 | |
| def test_clean_username_success(db):
 | |
|     # Instantiate the form with a new username
 | |
|     form = MyUserCreationForm(
 | |
|         {
 | |
|             "username": "alamode",
 | |
|             "password1": "thisismypassword",
 | |
|             "password2": "thisismypassword",
 | |
|         }
 | |
|     )
 | |
|     # Run is_valid() to trigger the validation
 | |
|     valid = form.is_valid()
 | |
|     assert valid
 | |
| 
 | |
|     # Run the actual clean_username method
 | |
|     username = form.clean_username()
 | |
|     assert "alamode" == username
 | |
| 
 | |
| 
 | |
| def test_clean_username_false(factories):
 | |
|     user = factories["users.User"]()
 | |
|     # Instantiate the form with the same username as self.user
 | |
|     form = MyUserCreationForm(
 | |
|         {
 | |
|             "username": user.username,
 | |
|             "password1": "thisismypassword",
 | |
|             "password2": "thisismypassword",
 | |
|         }
 | |
|     )
 | |
|     # Run is_valid() to trigger the validation, which is going to fail
 | |
|     # because the username is already taken
 | |
|     valid = form.is_valid()
 | |
|     assert not valid
 | |
| 
 | |
|     # The form.errors dict should contain a single error called 'username'
 | |
|     assert len(form.errors) == 1
 | |
|     assert "username" in form.errors
 |