Пример #1
0
    def test_join_disabled(self):
        import ptahcrowd
        from ptahcrowd.registration import Registration

        cfg = ptah.get_settings(ptahcrowd.CFG_ID_CROWD)
        cfg['join'] = False

        request = DummyRequest()
        form = Registration(None, request)
        res = form.update()
        self.assertIsInstance(res, HTTPForbidden)
Пример #2
0
    def test_join_auth(self):
        from ptahcrowd.registration import Registration

        request = DummyRequest()
        ptah.auth_service.set_userid('test')

        form = Registration(None, request)
        res = form.update()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(
            res.headers['location'], 'http://example.com')
Пример #3
0
    def test_join_unvalidated(self):
        import ptahcrowd
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

        user = CrowdUser(name='name', login='******', email='email')
        ptah.get_session().add(user)
        ptah.get_session().flush()

        uri = user.__uri__

        class Stub(object):
            status = ''
            def send(self, frm, to, msg):
                Stub.status = 'Email has been sended'

        MAIL = ptah.get_settings(ptah.CFG_ID_PTAH)
        MAIL['Mailer'] = Stub()

        CROWD = ptah.get_settings(ptahcrowd.CFG_ID_CROWD)
        CROWD['allow-unvalidated'] = False

        request = DummyRequest(
            POST = {'name': 'Test user',
                    'login': '******',
                    'password': '******',
                    'confirm_password': '******'})
        form = Registration(None, request)
        form.update()
        res = form.register_handler()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], 'http://example.com')

        user = ptah.auth_service.get_principal_bylogin('*****@*****.**')
        self.assertIsInstance(user, CrowdUser)
        self.assertEqual(user.name, 'Test user')

        self.assertIn('Validation email has been sent.',
                      ptah.render_messages(request))
Пример #4
0
    def test_join_error(self):
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

        user = CrowdUser(name='name', login='******', email='email')
        ptah.get_session().add(user)
        ptah.get_session().flush()

        uri = user.__uri__

        request = DummyRequest(
            POST = {'name': 'Test user',
                    'login': '******',
                    'password': '******',
                    'confirm_password': '******'})

        form = Registration(None, request)
        form.update()

        data, errors = form.extract()
        self.assertEqual(len(errors), 1)
        self.assertEqual(errors[0].msg[0], 'Invalid email address')

        form.register_handler()
        self.assertIn('Please fix indicated errors.',
                      ptah.render_messages(request))

        request = DummyRequest(
            POST = {'name': 'Test user',
                    'login': '******',
                    'password': '******',
                    'confirm_password': '******'})
        form = Registration(None, request)
        form.update()
        data, errors = form.extract()
        self.assertEqual(len(errors), 0)