Files
notifications-admin/tests/app/main/views/test_forgot_password.py
Chris Hill-Scott f3a0c505bd Enforce order and style of imports
Done using isort[1], with the following command:
```
isort -rc ./app ./tests
```

Adds linting to the `run_tests.sh` script to stop badly-sorted imports
getting re-introduced.

Chosen style is ‘Vertical Hanging Indent’ with trailing commas, because
I think it gives the cleanest diffs, eg:
```
from third_party import (
    lib1,
    lib2,
    lib3,
    lib4,
)
```

1. https://pypi.python.org/pypi/isort
2018-02-27 16:35:13 +00:00

52 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import pytest
from flask import Response, url_for
from notifications_python_client.errors import HTTPError
from tests.conftest import api_user_active as create_active_user
import app
def test_should_render_forgot_password(client):
response = client.get(url_for('.forgot_password'))
assert response.status_code == 200
assert 'Well send you an email to create a new password.' \
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(
client,
fake_uuid,
email_address,
mocker,
):
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 = client.post(
url_for('.forgot_password'),
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(sample_user.email_address)
def test_should_redirect_to_password_reset_sent_for_missing_email(
client,
api_user_active,
mocker,
):
mocker.patch('app.user_api_client.send_reset_password_url', side_effect=HTTPError(Response(status=404),
'Not found'))
response = client.post(
url_for('.forgot_password'),
data={'email_address': api_user_active.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)