def test_post_with_invalid_email(app_and_db, client, test_with_authenticated_user): new_email = "*****@*****.**" db = app_and_db[1] db.session.add( User(username="******", email=new_email, password="******")) db.session.commit() form = EditProfileForm( original_username=current_user.username, original_email=current_user.email, username="******", email=new_email, ) client.post(url_for("auth.edit_profile"), data=form.data, follow_redirects=True) user = User.query.filter_by(username="******").first() token = get_confirmation_token(id=user.id, email=form.email.data) response = client.post(url_for("auth.activate_email", token=token), follow_redirects=True) assert response.status_code == 200 user = User.query.get(user.id) assert user.email != new_email assert b"You can not set this email address." in response.data
def test_post_with_valid_token(client, inactive_user): token = get_confirmation_token(id=1) response = client.post(url_for("auth.activate_account", token=token), follow_redirects=True) assert response.status_code == 200 user = User.query.get(1) assert user.is_active assert b"You have activated your account successfully." in response.data
def test_get(client, captured_templates, inactive_user): user = User.query.filter_by(username="******").first() token = get_confirmation_token(id=user.id) response = client.get( url_for("auth.complete_registration", token=token)) assert response.status_code == 200 assert len(captured_templates) == 1 template, context = captured_templates[0] assert template.name == "auth/form.html" assert context["title"] == "Complete Registration" assert isinstance(context["form"], CompleteRegistrationForm)
def test_get(client, captured_templates, unlogged_user, test_with_anonymous_user): user = User.query.filter_by(username="******").first() token = get_confirmation_token(id=user.id) response = client.get(url_for("auth.reset_password", token=token)) assert response.status_code == 200 assert len(captured_templates) == 1 template, context = captured_templates[0] assert template.name == "auth/form.html" assert context["title"] == "Change Password" assert isinstance(context["form"], ChangePasswordForm)
def test_token(): token = get_confirmation_token(_id=1, text="test_text") token = verify_token(token) _id = token.get("_id", None) text = token.get("text", None) assert _id == 1 assert text == "test_text" token = get_confirmation_token(_id=5) token = verify_token(token) _id = token.get("_id", None) assert _id == 5 token = verify_token(b"wrong_token") _id = token.get("_id", None) assert not _id token = verify_token(b"wrong_token") _id = token.get("_id", None) text = token.get("text", None) assert not _id assert not text
def send_password_reset_confirmation(user: User) -> None: token = get_confirmation_token(id=user.id) tasks.send_email.delay( "eCon - Reset Your Password", sender=config["MAIL_DEFAULT_SENDER"], recipients=[user.email], text_body=render_template("email/reset_password.txt", user=user, token=token), html_body=render_template("email/reset_password.html", user=user, token=token), )
def send_complete_registration_mail(user: User) -> None: token = get_confirmation_token(id=user.id) tasks.send_email.delay( "eCon - Complete Registration", sender=config["MAIL_DEFAULT_SENDER"], recipients=[user.email], text_body=render_template("email/complete_registration.txt", user=user, token=token), html_body=render_template("email/complete_registration.html", user=user, token=token), )
def send_change_email_confirmation(email: str, user: User) -> None: token = get_confirmation_token(id=user.id, email=email) tasks.send_email.delay( "eCon - Change Your Email Address", sender=config["MAIL_DEFAULT_SENDER"], recipients=[email], text_body=render_template("email/change_email.txt", user=user, token=token), html_body=render_template("email/change_email.html", user=user, token=token), )
def send_register_confirmation(user: User) -> None: token = get_confirmation_token(id=user.id) tasks.send_email.delay( "eCon - Activate Your Account", sender=config["MAIL_DEFAULT_SENDER"], recipients=[user.email], text_body=render_template("email/activate_account.txt", user=user, token=token), html_body=render_template("email/activate_account.html", user=user, token=token), )
def test_post_with_valid_token(client, unlogged_user, test_with_anonymous_user): user = User.query.filter_by(username="******").first() token = get_confirmation_token(id=user.id) form = ChangePasswordForm(password="******", password2="new_password") response = client.post( url_for("auth.reset_password", token=token), data=form.data, follow_redirects=True, ) assert response.status_code == 200 assert b"Your password has been reset." in response.data assert user.validate_password("new_password")
def test_post_with_valid_token(client, inactive_user): user = User.query.filter_by(username="******").first() token = get_confirmation_token(id=user.id) form = CompleteRegistrationForm(username="******", password="******", password2="new_password") response = client.post( url_for("auth.complete_registration", token=token), data=form.data, follow_redirects=True, ) assert response.status_code == 200 assert b"You have successfully complete the registration." in response.data assert user.username == "new_test_user" assert user.validate_password("new_password") assert user.is_active
def test_post_with_valid_email(client, mocker, test_with_authenticated_user): mocker.patch("app.auth.email.send_change_email_confirmation") form = EditProfileForm( original_username=current_user.username, original_email=current_user.email, username="******", email="*****@*****.**", ) client.post(url_for("auth.edit_profile"), data=form.data, follow_redirects=True) token = get_confirmation_token(id=1, email=form.email.data) response = client.post(url_for("auth.activate_email", token=token), follow_redirects=True) assert response.status_code == 200 user = User.query.get(1) assert user.email == form.email.data assert b"You confirm your new email address." in response.data