コード例 #1
0
ファイル: test_join.py プロジェクト: sidloki/ptahcrowd
    def test_join(self):
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

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

        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()

        request = self.make_request(
            POST = {'username': '******',
                    'email': '*****@*****.**',
                    'password': '******',
                    'confirm_password': '******'})
        request.environ['HTTP_HOST'] = 'example.com'

        form = Registration(None, request)
        form.update_form()
        res = form.register_handler()

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

        user = ptah.auth_service.get_principal_bylogin('*****@*****.**')
        self.assertIsInstance(user, CrowdUser)
        self.assertEqual(user.name, 'test')
コード例 #2
0
ファイル: test_join.py プロジェクト: djedproject/ptahcrowd
    def test_join_unvalidated(self):
        import ptahcrowd
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

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

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

        request = self.make_request(
            POST = {'username': '******',
                    'email': '*****@*****.**',
                    'password': '******',
                    'confirm_password': '******'})
        form = Registration(None, request)
        form.update_form()
        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.username, 'test')

        self.assertIn('Validation email has been sent.',
                      request.render_messages())
コード例 #3
0
ファイル: test_join.py プロジェクト: djedproject/ptahcrowd
    def test_join(self):
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

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

        request = self.make_request(
            POST = {'username': '******',
                    'email': '*****@*****.**',
                    'password': '******',
                    'confirm_password': '******'})
        request.environ['HTTP_HOST'] = 'example.com'

        form = Registration(None, request)
        form.update_form()
        res = form.register_handler()

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

        user = ptah.auth_service.get_principal_bylogin('*****@*****.**')
        self.assertIsInstance(user, CrowdUser)
        self.assertEqual(user.name, 'test')
コード例 #4
0
ファイル: test_join.py プロジェクト: webmaven/ptahcrowd
    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)
コード例 #5
0
ファイル: test_join.py プロジェクト: webmaven/ptahcrowd
    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')
コード例 #6
0
ファイル: test_join.py プロジェクト: sidloki/ptahcrowd
    def test_join_disabled(self):
        import ptahcrowd
        from ptahcrowd.registration import Registration

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

        request = self.make_request()
        form = Registration(None, request)
        res = form()
        self.assertIsInstance(res, HTTPForbidden)
コード例 #7
0
ファイル: test_join.py プロジェクト: sidloki/ptahcrowd
    def test_join_auth(self):
        from ptahcrowd.registration import Registration

        request = self.make_request()
        ptah.auth_service.set_userid('test')

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

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(
            res.headers['location'], 'http://example.com')
コード例 #8
0
ファイル: test_join.py プロジェクト: webmaven/ptahcrowd
    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))
コード例 #9
0
ファイル: test_join.py プロジェクト: sidloki/ptahcrowd
    def test_join_error(self):
        from ptahcrowd.provider import CrowdUser
        from ptahcrowd.registration import Registration

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

        request = self.make_request(
            POST = {'username': '******',
                    'email': 'custom login',
                    'password': '******',
                    'confirm_password': '******'})

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

        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.',
                      request.render_messages())

        request = self.make_request(
            POST = {'username': '******',
                    'email': '*****@*****.**',
                    'password': '******',
                    'confirm_password': '******'})
        form = Registration(None, request)
        form.update_form()
        data, errors = form.extract()
        self.assertEqual(len(errors), 0)