Esempio n. 1
0
    def test_forgot_password_invalid_password(self):
        from horus.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User

        self.config.registry.registerUtility(User, IUserClass)

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

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

        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
Esempio n. 2
0
    def test_forgot_password_valid_user(self):
        from horus.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User

        self.config.registry.registerUtility(User, IUserClass)

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

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

        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(
            'Please check your e-mail to reset your password.', 'success')
        assert response.status_int == 302
Esempio n. 3
0
    def test_forgot_password_valid_user(self):
        from horus.views                import ForgotPasswordController
        from pyramid_mailer.interfaces  import IMailer
        from pyramid_mailer.mailer      import DummyMailer
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User
        self.config.registry.registerUtility(User, IUserClass)

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

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

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

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

        request.user = None

        view = ForgotPasswordController(request)

        with patch('horus.views.FlashMessage') as FlashMessage:
            response = view.forgot_password()
            FlashMessage.assert_called_with(request,
                view.Str.reset_password_email_sent, kind="success")
        assert response.status_int == 302
Esempio n. 4
0
    def test_forgot_password_invalid_password(self):
        from horus.views import ForgotPasswordController
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User

        self.config.registry.registerUtility(User, IUserClass)

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

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

        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
Esempio n. 5
0
    def test_forgot_password_valid_user(self):
        from horus.views                import ForgotPasswordController
        from pyramid_mailer.interfaces  import IMailer
        from pyramid_mailer.mailer      import DummyMailer
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User
        self.config.registry.registerUtility(User, IUserClass)

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

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

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

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

        request.user = None

        view = ForgotPasswordController(request)

        with patch('horus.views.FlashMessage') as FlashMessage:
            response = view.forgot_password()
            FlashMessage.assert_called_with(request,
                view.Str.reset_password_email_sent, kind="success")
        assert response.status_int == 302
Esempio n. 6
0
    def test_forgot_password_logged_in_redirects(self):
        from horus.views import ForgotPasswordController
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User

        self.config.registry.registerUtility(User, IUserClass)
        self.config.add_route('index', '/')
        self.config.include('horus')

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

        assert response.status_int == 302
Esempio n. 7
0
    def test_forgot_password_logged_in_redirects(self):
        from horus.views import ForgotPasswordController
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User

        self.config.registry.registerUtility(User, IUserClass)
        self.config.add_route('index', '/')
        self.config.include('horus')

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

        assert response.status_int == 302
Esempio n. 8
0
    def test_forgot_password_loads(self):
        from horus.views import ForgotPasswordController
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User
        from horus.interfaces           import IActivationClass
        from horus.tests.models         import Activation
        self.config.registry.registerUtility(Activation, IActivationClass)

        self.config.registry.registerUtility(User, IUserClass)
        self.config.add_route('index', '/')
        self.config.include('horus')

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

        assert response.get('form', None)
Esempio n. 9
0
    def test_forgot_password_loads(self):
        from horus.views import ForgotPasswordController
        from horus.interfaces           import IUserClass
        from horus.tests.models         import User
        from horus.interfaces           import IActivationClass
        from horus.tests.models         import Activation
        self.config.registry.registerUtility(Activation, IActivationClass)

        self.config.registry.registerUtility(User, IUserClass)
        self.config.add_route('index', '/')
        self.config.include('horus')

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

        assert response.get('form', None)
Esempio n. 10
0
    def forgot(self):
        request = self.request
        controller = ForgotPasswordController(request)
        form = self.forgot_form

        result = controller.forgot_password()
        if isinstance(result, dict):
            if 'errors' in result:
                error = colander.Invalid(
                    form.schema,
                    messages.INVALID_FORM
                )
                error.children = result.pop('errors')
                form.widget.handle_error(form, error)
            result = {
                'form': {
                    'forgot': form.render()
                }
            }
        else:
            # TODO: take care of flash success message
            return None
        return result