예제 #1
0
    def test_validate_email_ok(self):
        '''User::validate e-mail::ok'''

        user = User()
        email = text_type('*****@*****.**')
        user.email = email
        assert user.email == email
예제 #2
0
def test_introduce_username():
    """user gets introduced by username."""
    user = User()
    # 'User not saved should be represented by \'None\'')
    assert str(user) == 'None'
    user.id = 1
    # if id is set, user should be presented with it
    assert str(user) == '1'

    user.email = text_type('*****@*****.**')
    user.username = text_type('testowy')
    # To string should return username
    assert str(user) == 'testowy'
    # User should be represented by "<User (\'1\')>"
    assert user.__repr__() == "<User ('1')>"
예제 #3
0
def test_introduce_username():
    """User gets introduced by username."""
    user = User()
    # 'User not saved should be represented by \'None\'')
    assert str(user) == "None"
    user.id = 1
    # if id is set, user should be presented with it
    assert str(user) == "1"

    user.email = "*****@*****.**"
    user.username = "******"
    # To string should return username
    assert str(user) == "testowy"
    # User should be represented by "<User (\'1\')>"
    assert user.__repr__() == "<User ('1')>"
예제 #4
0
    def register_POST(self):
        '''
            Process POST register request
        '''

        invalid_fields = {}
        response_values = {
            'status': False,
            'msg': self.request._('You have an error in your registration form',
                                  domain='pyramid_fullauth'),
            'csrf_token': self.request.session.get_csrf_token()}
        response_values['errors'] = invalid_fields

        email = self.request.POST.get('email', u'')
        # here if e-mail is already in database
        try:
            Session.query(User).filter(User.email == email).one()
            invalid_fields['email'] = self.request._('User with given e-mail already exists!',
                                                     domain='pyramid_fullauth')
        except NoResultFound:
            pass

        try:
            user = User()
            try:
                user.email = email
            except ValidateError as e:
                # do not overwrite existing error
                if not 'email' in invalid_fields:
                    invalid_fields['email'] = str(e)

            user.address_ip = self.request.remote_addr

            if self.request.config.fullauth.register.password.require:
                try:
                    tools.validate_passsword(self.request,
                                             self.request.POST.get('password', u''),
                                             user)
                except ValidateError as e:
                    invalid_fields['password'] = e.message
            else:
                user.password = tools.password_generator(
                    self.request.config.fullauth.register.password.length_min)

            self.request.registry.notify(BeforeRegister(self.request, user, invalid_fields))
            if not invalid_fields:
                Session.add(user)
                Session.flush()
                # lets add AuthenticationProvider as email!
                user.providers.append(
                    AuthenticationProvider(provider=u'email', provider_id=user.id))
            else:
                return response_values
        except AttributeError as e:
            invalid_fields['msg'] = str(e)
            return response_values

        response_values['status'] = True
        response_values['msg'] = self.request._('You have successfully registered',
                                                domain='pyramid_fullauth')

        try:
            self.request.registry.notify(AfterRegister(self.request, user, response_values))
        except HTTPFound as redirect:
            return redirect

        return response_values
예제 #5
0
def test_introduce_email():
    """user gets introduced by e-mail only."""
    user = User()
    user.email = text_type('*****@*****.**')
    # To string should return concatenated email
    assert str(user) == 'test@...'
예제 #6
0
    def test_validate_email_bad(self):
        '''User::validate e-mail::bad'''

        user = User()
        with pytest.raises(EmailValidationError):
            user.email = text_type('bad-mail')
예제 #7
0
    def test_email_empty(self):
        '''Test reaction of email validator for empty email'''
        user = User()

        with pytest.raises(EmptyError):
            user.email = text_type('')
예제 #8
0
def test_introduce_email():
    """User gets introduced by e-mail only."""
    user = User()
    user.email = "*****@*****.**"
    # To string should return concatenated email
    assert str(user) == "test@..."