Exemple #1
0
    def test_reset_password_empty_password(self):
        from pyramid_signup.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer

        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')
        self.config.registry.registerUtility(DummyMailer(), IMailer)

        from pyramid_signup.models import User
        from pyramid_signup.models import Activation

        user = User(username='******', password='******', email='*****@*****.**')
        user.activation = Activation()

        self.session.add(user)
        self.session.flush()

        request = self.get_csrf_request(request_method='POST')

        request.matchdict = Mock()
        get = Mock()
        get.return_value = user.activation.code
        request.matchdict.get = get

        request.user = None

        flash = Mock()
        request.session.flash = flash

        view = ForgotPasswordController(request)

        response = view.reset_password()

        assert len(response['errors']) == 1
Exemple #2
0
    def test_invalid_reset_gets_404(self):
        from pyramid_signup.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer

        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')
        self.config.registry.registerUtility(DummyMailer(), IMailer)

        from pyramid_signup.models import User
        from pyramid_signup.models import Activation

        user = User(username='******', password='******', email='*****@*****.**')
        user.activation = Activation()

        self.session.add(user)
        self.session.flush()

        request = testing.DummyRequest()

        request.matchdict = Mock()
        get = Mock()
        get.return_value = 'b'
        request.matchdict.get = get

        request.user = None

        view = ForgotPasswordController(request)
        response = view.reset_password()

        assert response.status_int == 404
Exemple #3
0
    def test_forgot_password_invalid_password(self):
        from pyramid_signup.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer

        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')
        self.config.registry.registerUtility(DummyMailer(), IMailer)

        from pyramid_signup.models import User

        user = User(username='******', password='******', email='*****@*****.**')

        self.session.add(user)
        self.session.flush()

        request = self.get_csrf_request(post={
            'Email': 'sontek'
        }, request_method='POST')

        request.user = None

        view = ForgotPasswordController(request)
        response = view.forgot_password()

        assert len(response['errors']) == 1
Exemple #4
0
    def test_forgot_password_valid_user(self):
        from pyramid_signup.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer

        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')
        self.config.registry.registerUtility(DummyMailer(), IMailer)

        from pyramid_signup.models import User

        user = User(username='******', password='******', email='*****@*****.**')

        self.session.add(user)
        self.session.flush()


        request = self.get_csrf_request(post={
            'Email': '*****@*****.**'
        }, request_method='POST')

        request.user = None

        flash = Mock()
        request.session.flash = flash

        view = ForgotPasswordController(request)
        response = view.forgot_password()

        flash.assert_called_with(u'Please check your e-mail to reset your password.', 'success')
        assert response.status_int == 302
Exemple #5
0
    def test_forgot_password_logged_in_redirects(self):
        from pyramid_signup.views import ForgotPasswordController
        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')

        request = testing.DummyRequest()
        request.user = Mock()
        view = ForgotPasswordController(request)
        response = view.forgot_password()

        assert response.status_int == 302
Exemple #6
0
    def test_forgot_password_loads(self):
        from pyramid_signup.views import ForgotPasswordController
        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')

        request = testing.DummyRequest()
        request.user = None
        view = ForgotPasswordController(request)
        response = view.forgot_password()

        assert response.get('form', None)
Exemple #7
0
    def test_reset_password_valid_user(self):
        from pyramid_signup.views import ForgotPasswordController
        from pyramid_signup.interfaces import ISUSession
        from pyramid_signup.events import PasswordResetEvent
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from pyramid_signup.models import User
        from pyramid_signup.models import Activation
        from pyramid_signup.models import crypt


        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')
        self.config.registry.registerUtility(DummyMailer(), IMailer)

        user = User(username='******', password='******', email='*****@*****.**')
        user.activation = Activation()

        self.session.add(user)
        self.session.flush()

        request = self.get_csrf_request(post={
            'Password': {
                'value': 'test123',
                'confirm': 'test123',
            },
        }, request_method='POST')

        request.matchdict = Mock()
        get = Mock()
        get.return_value = user.activation.code
        request.matchdict.get = get

        request.user = None

        flash = Mock()
        request.session.flash = flash

        def handle_password_reset(event):
            request = event.request
            session = request.registry.getUtility(ISUSession)
            session.commit()

        self.config.add_subscriber(handle_password_reset, PasswordResetEvent)

        view = ForgotPasswordController(request)
        response = view.reset_password()

        assert not crypt.check(user.password, 'temp' + user.salt)
        assert response.status_int == 302