mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-27 17:39:51 -04:00
Update forgotten password to allow non-gov with test
This commit is contained in:
@@ -48,12 +48,16 @@ def get_next_hours_from(now, hours=23):
|
||||
]
|
||||
|
||||
|
||||
def email_address(label='Email address'):
|
||||
return EmailField(label, validators=[
|
||||
def email_address(label='Email address', gov_user=True):
|
||||
validators = [
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Can’t be empty'),
|
||||
Email(message='Enter a valid email address'),
|
||||
ValidEmailDomainRegex()])
|
||||
Email(message='Enter a valid email address')
|
||||
]
|
||||
|
||||
if gov_user:
|
||||
validators.append(ValidEmailDomainRegex())
|
||||
return EmailField(label, validators)
|
||||
|
||||
|
||||
class UKMobileNumber(TelField):
|
||||
@@ -126,11 +130,7 @@ class PermissionsForm(Form):
|
||||
|
||||
|
||||
class InviteUserForm(PermissionsForm):
|
||||
email_address = EmailField('Email address', validators=[
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Can’t be empty'),
|
||||
Email(message='Enter a valid email address')
|
||||
])
|
||||
email_address = email_address(gov_user=False)
|
||||
|
||||
def __init__(self, invalid_email_address, *args, **kwargs):
|
||||
super(InviteUserForm, self).__init__(*args, **kwargs)
|
||||
@@ -246,7 +246,8 @@ class EmailTemplateForm(SMSTemplateForm):
|
||||
|
||||
|
||||
class ForgotPasswordForm(Form):
|
||||
email_address = email_address()
|
||||
# email_address = email_address()
|
||||
email_address = email_address(gov_user=False)
|
||||
|
||||
|
||||
class NewPasswordForm(Form):
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from flask import url_for, Response
|
||||
from notifications_python_client.errors import HTTPError
|
||||
from tests.conftest import api_user_active as create_active_user
|
||||
|
||||
import app
|
||||
|
||||
@@ -12,19 +15,25 @@ def test_should_render_forgot_password(app_):
|
||||
in response.get_data(as_text=True)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('email_address', [
|
||||
'test@user.gov.uk',
|
||||
'someuser@notonwhitelist.com'
|
||||
])
|
||||
def test_should_redirect_to_password_reset_sent_for_valid_email(
|
||||
app_,
|
||||
api_user_active,
|
||||
fake_uuid,
|
||||
email_address,
|
||||
mocker):
|
||||
with app_.test_request_context():
|
||||
sample_user = create_active_user(fake_uuid, email_address=email_address)
|
||||
mocker.patch('app.user_api_client.send_reset_password_url', return_value=None)
|
||||
response = app_.test_client().post(
|
||||
url_for('.forgot_password'),
|
||||
data={'email_address': api_user_active.email_address})
|
||||
data={'email_address': sample_user.email_address})
|
||||
assert response.status_code == 200
|
||||
assert 'Click the link in the email 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(sample_user.email_address)
|
||||
|
||||
|
||||
def test_should_redirect_to_password_reset_sent_for_missing_email(
|
||||
|
||||
Reference in New Issue
Block a user