def test_generate_url(self): # Ensure generate_url behaves as expected. token = encode_token('*****@*****.**') url = generate_url('main.home', token) url_token = url.split('=')[1] self.assertEqual(token, url_token) email = decode_token(url_token) self.assertEqual(email, '*****@*****.**')
def confirm_email(token): email = decode_token(token) if not email: flash('The confirmation link is invalid or has expired.', 'danger') return redirect(url_for('main.home')) user = User.query.filter_by(email=email).first() if user.confirmed: flash('Account already confirmed.', 'success') return redirect(url_for('main.home')) user.confirmed = True db.session.add(user) db.session.commit() flash('You have confirmed your account. Thanks!', 'success') return redirect(url_for('main.home'))
def test_verify_invalid_token(self): # Ensure encode and decode behave correctly when token is invalid. token = 'invalid' email = decode_token(token) self.assertEqual(email, False)
def test_verify_expired_token(self): # Ensure encode and decode behave correctly when token has expired. token = encode_token('*****@*****.**') time.sleep(1) email = decode_token(token, 0) self.assertEqual(email, False)
def test_verify_token(self): # Ensure encode and decode behave correctly. token = encode_token('*****@*****.**') email = decode_token(token) self.assertEqual(email, '*****@*****.**')