mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-26 17:24:23 -04:00
Should show the sent password reset link page when the user is not found.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
from flask import (
|
from flask import (
|
||||||
render_template,
|
render_template,
|
||||||
)
|
)
|
||||||
|
from notifications_python_client.errors import HTTPError
|
||||||
|
|
||||||
from app.main import main
|
from app.main import main
|
||||||
from app.main.forms import ForgotPasswordForm
|
from app.main.forms import ForgotPasswordForm
|
||||||
@@ -11,8 +12,13 @@ from app import user_api_client
|
|||||||
def forgot_password():
|
def forgot_password():
|
||||||
form = ForgotPasswordForm()
|
form = ForgotPasswordForm()
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
user_api_client.send_reset_password_url(form.email_address.data)
|
try:
|
||||||
|
user_api_client.send_reset_password_url(form.email_address.data)
|
||||||
|
except HTTPError as e:
|
||||||
|
if e.status_code == 404:
|
||||||
|
return render_template('views/password-reset-sent.html')
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
return render_template('views/password-reset-sent.html')
|
return render_template('views/password-reset-sent.html')
|
||||||
|
|
||||||
return render_template('views/forgot-password.html', form=form)
|
return render_template('views/forgot-password.html', form=form)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from flask import url_for
|
from flask import url_for, Response
|
||||||
|
from notifications_python_client.errors import HTTPError
|
||||||
|
|
||||||
import app
|
import app
|
||||||
|
|
||||||
@@ -25,3 +26,21 @@ def test_should_redirect_to_password_reset_sent_for_valid_email(
|
|||||||
'You have been sent an email containing a link'
|
'You have been sent an email containing a link'
|
||||||
' to reset your password.') in response.get_data(as_text=True)
|
' to reset your password.') in response.get_data(as_text=True)
|
||||||
app.user_api_client.send_reset_password_url.assert_called_once_with(api_user_active.email_address)
|
app.user_api_client.send_reset_password_url.assert_called_once_with(api_user_active.email_address)
|
||||||
|
|
||||||
|
|
||||||
|
def test_should_redirect_to_password_reset_sent_for_missing_email(
|
||||||
|
app_,
|
||||||
|
api_user_active,
|
||||||
|
mocker):
|
||||||
|
with app_.test_request_context():
|
||||||
|
|
||||||
|
mocker.patch('app.user_api_client.send_reset_password_url', side_effect=HTTPError(Response(status=404),
|
||||||
|
'Not found'))
|
||||||
|
response = app_.test_client().post(
|
||||||
|
url_for('.forgot_password'),
|
||||||
|
data={'email_address': api_user_active.email_address})
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert (
|
||||||
|
'You have been sent an email containing a link'
|
||||||
|
' to reset your password.') in response.get_data(as_text=True)
|
||||||
|
app.user_api_client.send_reset_password_url.assert_called_once_with(api_user_active.email_address)
|
||||||
|
|||||||
Reference in New Issue
Block a user