mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
when visited sends sms code for second step of account verification. At that second step user enters just sms code sent to users mobile number. Also moved dao calls that simply proxied calls to client to calling client directly. There is still a place where a user will be a sent a code for verification to their email namely if they update email address.
296 lines
13 KiB
Python
296 lines
13 KiB
Python
import json
|
|
from flask import url_for
|
|
|
|
|
|
# def test_should_show_overview_page(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_get_user):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# response = client.get(url_for('main.user_profile'))
|
|
|
|
# assert 'Your profile' in response.get_data(as_text=True)
|
|
# assert response.status_code == 200
|
|
|
|
|
|
# def test_should_show_name_page(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_get_user):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# response = client.get(url_for('main.user_profile_name'))
|
|
|
|
# assert 'Change your name' in response.get_data(as_text=True)
|
|
# assert response.status_code == 200
|
|
|
|
|
|
# def test_should_redirect_after_name_change(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_update_user,
|
|
# mock_get_user):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# new_name = 'New Name'
|
|
# data = {'new_name': new_name}
|
|
# response = client.post(url_for(
|
|
# 'main.user_profile_name'), data=data)
|
|
|
|
# assert response.status_code == 302
|
|
# assert response.location == url_for(
|
|
# 'main.user_profile', _external=True)
|
|
# api_user_active.name = new_name
|
|
# assert mock_update_user.called
|
|
|
|
|
|
# def test_should_show_email_page(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_get_user):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# response = client.get(url_for(
|
|
# 'main.user_profile_email'))
|
|
|
|
# assert 'Change your email address' in response.get_data(as_text=True)
|
|
# assert response.status_code == 200
|
|
|
|
|
|
# def test_should_redirect_after_email_change(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_get_user,
|
|
# mock_get_user_by_email_not_found,
|
|
# mock_is_email_unique):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# data = {'email_address': 'new_notify@notify.gov.uk'}
|
|
# response = client.post(
|
|
# url_for('main.user_profile_email'),
|
|
# data=data)
|
|
|
|
# assert response.status_code == 302
|
|
# assert response.location == url_for(
|
|
# 'main.user_profile_email_authenticate', _external=True)
|
|
|
|
|
|
# def test_should_show_authenticate_after_email_change(app_,
|
|
# api_user_active,
|
|
# mock_login,
|
|
# mock_get_user,
|
|
# mock_verify_password):
|
|
# with app_.test_request_context():
|
|
# with app_.test_client() as client:
|
|
# client.login(api_user_active)
|
|
# with client.session_transaction() as session:
|
|
# session['new-email'] = 'new_notify@notify.gov.uk'
|
|
# response = client.get(url_for('main.user_profile_email_authenticate'))
|
|
|
|
# assert 'Change your email address' in response.get_data(as_text=True)
|
|
# assert 'Confirm' in response.get_data(as_text=True)
|
|
# assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_email_change_confirm(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user,
|
|
mock_verify_password,
|
|
mock_send_verify_code,
|
|
mock_is_email_unique):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
data = {'email-code': '12345'}
|
|
with client.session_transaction() as session:
|
|
session['new-email'] = 'new_notify@notify.gov.uk'
|
|
response = client.post(
|
|
url_for('main.user_profile_email_authenticate'),
|
|
data=data)
|
|
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile_email_confirm', _external=True)
|
|
|
|
|
|
def test_should_show_confirm_after_email_change(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-email-password-confirmed'] = True
|
|
response = client.get(url_for('main.user_profile_email_confirm'))
|
|
|
|
assert 'Change your email address' in response.get_data(as_text=True)
|
|
assert 'Confirm' in response.get_data(as_text=True)
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_email_change_confirm(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user,
|
|
mock_check_verify_code):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-email-password-confirmed'] = True
|
|
session['new-email'] = 'new_notify@notify.gov.uk'
|
|
data = {'email_code': '12345'}
|
|
response = client.post(
|
|
url_for('main.user_profile_email_confirm'),
|
|
data=data)
|
|
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile', _external=True)
|
|
|
|
|
|
def test_should_show_mobile_number_page(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
response = client.get(url_for('main.user_profile_mobile_number'))
|
|
|
|
assert 'Change your mobile number' in response.get_data(as_text=True)
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_mobile_number_change(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
data = {'mobile_number': '07121231234'}
|
|
response = client.post(
|
|
url_for('main.user_profile_mobile_number'),
|
|
data=data)
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile_mobile_number_authenticate', _external=True)
|
|
|
|
|
|
def test_should_show_authenticate_after_mobile_number_change(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-mob'] = '+441234123123'
|
|
response = client.get(
|
|
url_for('main.user_profile_mobile_number_authenticate'))
|
|
|
|
assert 'Change your mobile number' in response.get_data(as_text=True)
|
|
assert 'Confirm' in response.get_data(as_text=True)
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_mobile_number_authenticate(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user,
|
|
mock_verify_password,
|
|
mock_send_verify_code):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-mob'] = '+441234123123'
|
|
data = {'password': '12345667'}
|
|
response = client.post(
|
|
url_for('main.user_profile_mobile_number_authenticate'),
|
|
data=data)
|
|
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile_mobile_number_confirm', _external=True)
|
|
|
|
|
|
def test_should_show_confirm_after_mobile_number_change(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-mob-password-confirmed'] = True
|
|
response = client.get(
|
|
url_for('main.user_profile_mobile_number_confirm'))
|
|
|
|
assert 'Change your mobile number' in response.get_data(as_text=True)
|
|
assert 'Confirm' in response.get_data(as_text=True)
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_mobile_number_confirm(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user,
|
|
mock_check_verify_code):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
with client.session_transaction() as session:
|
|
session['new-mob-password-confirmed'] = True
|
|
session['new-mob'] = '+441234123123'
|
|
data = {'sms_code': '12345'}
|
|
response = client.post(
|
|
url_for('main.user_profile_mobile_number_confirm'),
|
|
data=data)
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile', _external=True)
|
|
|
|
|
|
def test_should_show_password_page(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
response = client.get(url_for('main.user_profile_password'))
|
|
|
|
assert 'Change your password' in response.get_data(as_text=True)
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_should_redirect_after_password_change(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user,
|
|
mock_update_user,
|
|
mock_verify_password):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
data = {
|
|
'new_password': '1234567890',
|
|
'old_password': '4567676328'}
|
|
response = client.post(
|
|
url_for('main.user_profile_password'),
|
|
data=data)
|
|
|
|
assert response.status_code == 302
|
|
assert response.location == url_for(
|
|
'main.user_profile', _external=True)
|