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