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