Example #1
0
    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
Example #2
0
    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