예제 #1
0
    def test_get_user_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager
        from pyramid_signup.managers import UserManager
        from pyramid_signup.models import User

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

        activation = Activation()
        user2.activation = activation

        self.session.add(user1)
        self.session.add(user2)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)
        user_mgr = UserManager(request)

        new_user = user_mgr.get_by_username('sontek2')

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
        assert new_user.activation == new_activation
예제 #2
0
    def test_get_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager

        activation = Activation()
        self.session.add(activation)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
예제 #3
0
    def test_activate_multiple_users(self):
        from pyramid_signup.views import RegisterController
        from pyramid_signup.models import User
        from pyramid_signup.models import Activation
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from pyramid_signup.managers import UserManager
        from pyramid_signup.managers import ActivationManager
        self.config.include('pyramid_signup')
        self.config.add_route('index', '/')

        self.config.registry.registerUtility(DummyMailer(), IMailer)

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

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

        request = testing.DummyRequest()
        request.matchdict = Mock()
        get = Mock()
        get.return_value = user1.activation.code
        request.matchdict.get = get

        controller = RegisterController(request)
        response = controller.activate()
        mgr = UserManager(request)
        user = mgr.get_by_username('sontek1')

        act_mgr = ActivationManager(request)
        activations = act_mgr.get_all()

        assert len(activations) == 1
        assert user.activated
        assert response.status_int == 302
예제 #4
0
    def activate(self):
        code = self.request.matchdict.get('code', None)
        act_mgr = ActivationManager(self.request)
        user_mgr = UserManager(self.request)

        activation = act_mgr.get_by_code(code)

        if activation:
            user = user_mgr.get_by_activation(activation)

            if user:
                self.db.delete(activation)
                user.activated = True
                self.db.add(user)
                self.db.flush()

                self.request.registry.notify(
                    RegistrationActivatedEvent(self.request, user, activation))

                self.request.session.flash(
                    _('Your e-mail address has been verified.'), 'success')
                return HTTPFound(location=self.activate_redirect_view)

        return HTTPNotFound()