def create_user(cls, email, first_name, last_name, password, groups=[]): """ Responsible for validating new user input. Hashes password and raises UserExists error if is duplicate. Creates and saves a new user. """ # let validation error bubble up for right now validate_email(email) # check if user exists based on email try: cls.objects.get(email=email) # how should User be referred to ? cls or User? raise UserExists except User.DoesNotExist: pass # hash bpassword encrypted_password = encrypt_password(password) now_datetime = datetime.now() new_user = cls( email = email, first_name = first_name, last_name = last_name, password = encrypted_password, datetime_joined = now_datetime, last_login = now_datetime, is_active = True ) if groups: new_user.groups = groups new_user.save() return new_user
def test_email_validate(self): """ Verify that an incorrect email can be detected, and a valid one can be detected. """ valid_email = '*****@*****.**' invalid_email = 'testtest.com' validate_email(valid_email) try: validate_email(invalid_email) self.fail('invalid email not caught') except ValidationError: pass