예제 #1
0
    def test_reset_password_token(self):
        user = User(email='*****@*****.**', username='******')
        user.set_password('123')
        user.save()

        res = self.client.get(url_for('user.reset_password', token=False),
                              follow_redirects=True)
        data = res.get_data(as_text=True)

        token = generate_token(user, 'reset-password')
        res1 = self.client.post(url_for('user.reset_password', token=token),
                                data=dict(email=user.email,
                                          password='******',
                                          password2='12345678'),
                                follow_redirects=True)
        data1 = res1.get_data(as_text=True)

        token = generate_token(user, 'reset')
        res2 = self.client.post(url_for('user.reset_password', token=token),
                                data=dict(email=user.email,
                                          password='******',
                                          password2='1234567a'),
                                follow_redirects=True)
        data2 = res2.get_data(as_text=True)

        token = generate_token(user, 'reset-password')
        res3 = self.client.post(url_for('user.reset_password', token=token),
                                data=dict(email='*****@*****.**',
                                          password='******',
                                          password2='12345678'),
                                follow_redirects=True)
        data3 = res3.get_data(as_text=True)

        user.delete()
        self.assertEqual(res.status_code, 200)
        self.assertIn('重置密码', data)
        self.assertEqual(res1.status_code, 200)
        self.assertIn('重置密码成功', data1)
        self.assertEqual(res2.status_code, 200)
        self.assertIn('无效或者过期的链接', data2)
        self.assertEqual(res3.status_code, 200)
        self.assertIn('邮箱不存在', data3)
예제 #2
0
    def test_upgrade(self):
        self.user.is_admin = 3
        self.user.save()
        self.login()
        user = User(email='*****@*****.**', username='******')
        user.set_password('123456789a')
        user.save()

        res = self.client.get(url_for('admin.upgrade', user_id=user.id))
        data = res.get_data(as_text=True)
        res1 = self.client.post(url_for('admin.upgrade', user_id=user.id),
                                data=dict(is_admin=2),
                                follow_redirects=True)
        data1 = res1.get_data(as_text=True)
        user.delete()

        self.assertEqual(res.status_code, 200)
        self.assertIn('升级或降级管理员', data)
        self.assertEqual(res1.status_code, 200)
        self.assertIn('修改管理成功', data1)
예제 #3
0
    def test_useless_operation(self):
        self.user.confirmed = False
        self.user.save()
        self.login()
        user = User(email='*****@*****.**', username='******')
        user.set_password('123')
        user.save()

        token = generate_token(user, 'confirm')
        res = self.client.get(url_for('user.confirm', token=token),
                              follow_redirects=True)
        data = res.get_data(as_text=True)

        token = generate_token(user,
                               'change_email',
                               new_email='*****@*****.**')
        res1 = self.client.get(url_for('user.change_email', token=token),
                               follow_redirects=True)
        data1 = res1.get_data(as_text=True)

        res2 = self.client.get(url_for('user.change_email', token=False),
                               follow_redirects=True)
        data2 = res2.get_data(as_text=True)

        token = generate_token(self.user, 'confirmconfirm')
        res3 = self.client.get(url_for('user.confirm', token=token),
                               follow_redirects=True)
        data3 = res3.get_data(as_text=True)

        user.delete()
        self.assertEqual(res.status_code, 200)
        self.assertIn('无效或者过期的链接', data)
        self.assertEqual(res1.status_code, 200)
        self.assertIn('无效或者过期的链接', data1)
        self.assertEqual(res2.status_code, 200)
        self.assertIn('无效或者过期的链接', data2)
        self.assertEqual(res3.status_code, 200)
        self.assertIn('无效或者过期的链接', data3)
예제 #4
0
class BaseTestCase(unittest.TestCase):

    def setUp(self):
        app = create_app('testing')
        self.context = app.test_request_context()
        self.context.push()
        self.client = app.test_client()
        self.user = User(email='*****@*****.**', username='******')
        self.user.set_password('123')
        self.user.save()

    def tearDown(self):
        self.user.delete()
        self.context.pop()

    def login(self):
        email = self.user.email
        password = '******'
        res = self.client.post(url_for('user.login'), data=dict(email=email, 
            password=password), follow_redirects=True)
        return res

    def logout(self):
        return self.client.get(url_for('user.logout'), follow_redirects=True)