mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 16:38:59 -04:00
Merge branch 'master' into api-keys-flow
Conflicts: tests/app/main/views/test_api_keys.py
This commit is contained in:
@@ -5,18 +5,20 @@ from app.main.dao import services_dao
|
||||
|
||||
def test_can_insert_new_service(db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_create_service):
|
||||
mock_api_user,
|
||||
mock_create_service,
|
||||
mock_user_dao_get_by_email):
|
||||
service_name = 'testing service'
|
||||
id_ = services_dao.insert_new_service(service_name, active_user.id)
|
||||
id_ = services_dao.insert_new_service(service_name, mock_api_user.id)
|
||||
mock_create_service.assert_called_once_with(
|
||||
service_name, False, 1000, True, active_user.id)
|
||||
service_name, False, 1000, True, mock_api_user.id)
|
||||
|
||||
|
||||
def test_unrestrict_service_updates_the_service(db_,
|
||||
db_session,
|
||||
mock_get_service,
|
||||
mock_update_service):
|
||||
mock_update_service,
|
||||
mock_user_dao_get_by_email):
|
||||
service_one = mock_get_service.side_effect(123)['data']
|
||||
services_dao.unrestrict_service(service_one['id'])
|
||||
mock_update_service.assert_called_once_with(service_one['id'],
|
||||
@@ -29,9 +31,10 @@ def test_unrestrict_service_updates_the_service(db_,
|
||||
|
||||
def test_activate_service_update_service(db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_update_service):
|
||||
mock_update_service,
|
||||
mock_user_dao_get_by_email):
|
||||
service_one = mock_get_service.side_effect(123)['data']
|
||||
services_dao.activate_service(service_one['id'])
|
||||
mock_update_service.assert_called_once_with(service_one['id'],
|
||||
|
||||
@@ -2,7 +2,7 @@ from app.main.dao import users_dao
|
||||
from app.main.forms import RegisterUserForm
|
||||
|
||||
|
||||
def test_should_raise_validation_error_for_password(app_):
|
||||
def test_should_raise_validation_error_for_password(app_, mock_user_dao_get_by_email):
|
||||
form = RegisterUserForm(users_dao.get_user_by_email)
|
||||
form.name.data = 'test'
|
||||
form.email_address.data = 'teset@example.gov.uk'
|
||||
|
||||
@@ -7,13 +7,14 @@ from app.models import User
|
||||
def test_get_should_render_add_service_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_get_services,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.get(url_for('main.add_service'))
|
||||
assert response.status_code == 200
|
||||
assert 'Set up notifications for your service' in response.get_data(as_text=True)
|
||||
@@ -24,11 +25,12 @@ def test_should_add_service_and_redirect_to_next_page(app_,
|
||||
db_session,
|
||||
mock_create_service,
|
||||
mock_get_services,
|
||||
mock_user_loader):
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
client.login(mock_api_user)
|
||||
response = client.post(
|
||||
url_for('main.add_service'),
|
||||
data={'name': 'testing the post'})
|
||||
@@ -41,13 +43,14 @@ def test_should_add_service_and_redirect_to_next_page(app_,
|
||||
def test_should_return_form_errors_when_service_name_is_empty(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_get_services,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.post(url_for('main.add_service'), data={})
|
||||
assert response.status_code == 200
|
||||
assert 'Service name can not be empty' in response.get_data(as_text=True)
|
||||
@@ -57,11 +60,12 @@ def test_should_return_form_errors_with_duplicate_service_name(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_get_services,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_api_user,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
client.login(mock_api_user)
|
||||
response = client.post(
|
||||
url_for('main.add_service'), data={'name': 'service_one'})
|
||||
assert response.status_code == 200
|
||||
|
||||
@@ -2,15 +2,15 @@ from datetime import date
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_show_documentation_page(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_get_service,
|
||||
mock_get_services,
|
||||
mock_user_loader):
|
||||
def test_should_show_api_keys_and_documentation_page(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(mock_api_user)
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('main.documentation', service_id=123))
|
||||
|
||||
|
||||
@@ -121,7 +121,6 @@ def test_should_update_mobile_number_resend_code(app_,
|
||||
def test_should_render_verification_code_not_received(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
@@ -137,13 +136,14 @@ def test_should_render_verification_code_not_received(app_,
|
||||
def test_check_and_redirect_to_two_factor(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
mock_send_email,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
session['user_email'] = active_user.email_address
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
response = client.get(url_for('main.check_and_resend_verification_code'))
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.two_factor', _external=True)
|
||||
@@ -152,18 +152,19 @@ def test_check_and_redirect_to_two_factor(app_,
|
||||
def test_should_create_new_code_for_user(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
mock_send_email,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
session['user_email'] = active_user.email_address
|
||||
verify_codes_dao.add_code(user_id=active_user.id, code='12345', code_type='sms')
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='12345', code_type='sms')
|
||||
response = client.get(url_for('main.check_and_resend_verification_code'))
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.two_factor', _external=True)
|
||||
codes = verify_codes_dao.get_codes(user_id=active_user.id, code_type='sms')
|
||||
codes = verify_codes_dao.get_codes(user_id=mock_api_user.id, code_type='sms')
|
||||
assert len(codes) == 2
|
||||
for x in ([used.code_used for used in codes]):
|
||||
assert x is False
|
||||
|
||||
@@ -5,12 +5,13 @@ from flask import url_for
|
||||
def test_should_show_recent_jobs_on_dashboard(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.get(url_for('main.service_dashboard', service_id=123))
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
@@ -14,7 +14,6 @@ def test_should_render_forgot_password(app_, db_, db_session):
|
||||
def test_should_redirect_to_password_reset_sent_and_state_updated(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_send_email,
|
||||
mock_api_user,
|
||||
mock_user_dao_get_by_email,
|
||||
@@ -22,7 +21,7 @@ def test_should_redirect_to_password_reset_sent_and_state_updated(app_,
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post(
|
||||
url_for('.forgot_password'),
|
||||
data={'email_address': active_user.email_address})
|
||||
data={'email_address': mock_api_user.email_address})
|
||||
assert response.status_code == 200
|
||||
assert (
|
||||
'You have been sent an email containing a link'
|
||||
|
||||
@@ -3,23 +3,25 @@ from app.models import User
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_return_list_of_all_jobs(app_, db_, db_session, service_one, active_user, mock_user_loader):
|
||||
def test_should_return_list_of_all_jobs(app_, db_, db_session, service_one, mock_api_user,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.get(url_for('main.view_jobs', service_id=101))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'You haven’t sent any notifications yet' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_show_page_for_one_job(app_, db_, db_session, service_one, active_user, mock_user_loader):
|
||||
def test_should_show_page_for_one_job(app_, db_, db_session, service_one, mock_api_user,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
# TODO filename will be part of job metadata not in session
|
||||
with client.session_transaction() as s:
|
||||
s[456] = 'dispatch_20151114.csv'
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.get(url_for('main.view_job', service_id=123, job_id=456))
|
||||
|
||||
assert response.status_code == 200
|
||||
@@ -27,10 +29,11 @@ def test_should_show_page_for_one_job(app_, db_, db_session, service_one, active
|
||||
assert 'Test message 1' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_show_page_for_one_notification(app_, db_, db_session, service_one, active_user, mock_user_loader):
|
||||
def test_should_show_page_for_one_notification(app_, db_, db_session, service_one, mock_api_user,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.get(url_for(
|
||||
'main.view_notification',
|
||||
service_id=101,
|
||||
|
||||
@@ -8,7 +8,8 @@ from tests import create_test_user
|
||||
import pytest
|
||||
|
||||
|
||||
def test_should_render_new_password_template(app_, db_, db_session, mock_api_user, mock_user_dao_get_new_password):
|
||||
def test_should_render_new_password_template(app_, db_, db_session, mock_api_user,
|
||||
mock_user_dao_get_new_password):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
token = generate_token(mock_api_user.email_address)
|
||||
@@ -17,16 +18,16 @@ def test_should_render_new_password_template(app_, db_, db_session, mock_api_use
|
||||
assert ' You can now create a new password for your account.' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_render_new_password_template_with_message_of_bad_token(app_, db_, db_session):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
create_test_user('request_password_reset')
|
||||
token = generate_token('no_user@d.gov.uk')
|
||||
response = client.get(url_for('.new_password', token=token))
|
||||
assert response.status_code == 200
|
||||
assert 'Message about email address does not exist. Some one needs to figure out the words here.' in \
|
||||
response.get_data(as_text=True)
|
||||
|
||||
# def test_should_render_new_password_template_with_message_of_bad_token(app_, db_, db_session,
|
||||
# mock_user_dao_get_by_email):
|
||||
# with app_.test_request_context():
|
||||
# with app_.test_client() as client:
|
||||
# create_test_user('request_password_reset')
|
||||
# token = generate_token('no_user@d.gov.uk')
|
||||
# response = client.get(url_for('.new_password', token=token))
|
||||
# assert response.status_code == 200
|
||||
# assert 'Message about email address does not exist. Some one needs to figure out the words here.' in \
|
||||
# response.get_data(as_text=True)
|
||||
|
||||
@pytest.mark.xfail(reason='Password reset not implemented')
|
||||
def test_should_redirect_to_two_factor_when_password_reset_is_successful(app_,
|
||||
@@ -37,8 +38,8 @@ def test_should_redirect_to_two_factor_when_password_reset_is_successful(app_,
|
||||
mock_user_dao_get_new_password):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('request_password_reset')
|
||||
token = generate_token(user.email_address)
|
||||
mock_api_user.state = 'request_password_reset'
|
||||
token = generate_token(mock_api_user.email_address)
|
||||
response = client.post(url_for('.new_password', token=token), data={'new_password': 'a-new_password'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.two_factor', _external=True)
|
||||
@@ -49,25 +50,29 @@ def test_should_redirect_to_two_factor_when_password_reset_is_successful(app_,
|
||||
|
||||
def test_should_redirect_to_forgot_password_with_flash_message_when_token_is_expired(app_,
|
||||
db_,
|
||||
db_session):
|
||||
db_session,
|
||||
mock_api_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
app_.config['TOKEN_MAX_AGE_SECONDS'] = -1000
|
||||
user = create_test_user('request_password_reset')
|
||||
token = generate_token(user.email_address)
|
||||
mock_api_user.state = 'request_password_reset'
|
||||
token = generate_token(mock_api_user.email_address)
|
||||
response = client.post(url_for('.new_password', token=token), data={'new_password': 'a-new_password'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.forgot_password', _external=True)
|
||||
app_.config['TOKEN_MAX_AGE_SECONDS'] = 3600
|
||||
|
||||
|
||||
def test_should_redirect_to_forgot_password_when_user_is_active_should_be_request_password_reset(app_,
|
||||
db_,
|
||||
db_session):
|
||||
@pytest.mark.xfail(reason='Password reset not implemented')
|
||||
def test_should_redirect_to_forgot_pass_when_user_active_should_be_request_passw_reset(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_api_user,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
token = generate_token(user.email_address)
|
||||
mock_api_user.state = 'request_password_reset'
|
||||
token = generate_token(mock_api_user.email_address)
|
||||
response = client.post(url_for('.new_password', token=token), data={'new_password': 'a-new_password'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.index', _external=True)
|
||||
|
||||
@@ -3,11 +3,11 @@ from flask import url_for
|
||||
from tests.conftest import mock_register_user as mock_user
|
||||
|
||||
|
||||
def test_render_register_returns_template_with_form(app_, db_, db_session):
|
||||
response = app_.test_client().get('/register')
|
||||
# def test_render_register_returns_template_with_form(app_, db_, db_session):
|
||||
# response = app_.test_client().get('/register')
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Create an account' in response.get_data(as_text=True)
|
||||
# assert response.status_code == 200
|
||||
# assert 'Create an account' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_process_register_creates_new_user(app_,
|
||||
@@ -15,7 +15,8 @@ def test_process_register_creates_new_user(app_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email,
|
||||
mock_register_user):
|
||||
mock_register_user,
|
||||
mock_user_by_email_not_found):
|
||||
user_data = {
|
||||
'name': 'Some One Valid',
|
||||
'email_address': 'someone@example.gov.uk',
|
||||
@@ -34,7 +35,8 @@ def test_process_register_returns_400_when_mobile_number_is_invalid(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
mock_send_email,
|
||||
mock_user_by_email_not_found):
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Bad Mobile',
|
||||
'email_address': 'bad_mobile@example.gov.uk',
|
||||
@@ -49,7 +51,8 @@ def test_should_return_400_when_email_is_not_gov_uk(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
mock_send_email,
|
||||
mock_user_by_email_not_found):
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Bad Mobile',
|
||||
'email_address': 'bad_mobile@example.not.right',
|
||||
@@ -65,7 +68,9 @@ def test_should_add_verify_codes_on_session(app_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email,
|
||||
mock_register_user):
|
||||
mock_register_user,
|
||||
mock_user_loader,
|
||||
mock_user_by_email_not_found):
|
||||
user_data = {
|
||||
'name': 'Test Codes',
|
||||
'email_address': 'test@example.gov.uk',
|
||||
@@ -80,7 +85,7 @@ def test_should_add_verify_codes_on_session(app_,
|
||||
assert 'notify_admin_session' in response.headers.get('Set-Cookie')
|
||||
|
||||
|
||||
def test_should_return_400_if_password_is_blacklisted(app_, db_, db_session):
|
||||
def test_should_return_400_if_password_is_blacklisted(app_, db_, db_session, mock_user_by_email_not_found):
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Bad Mobile',
|
||||
'email_address': 'bad_mobile@example.not.right',
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from flask import (url_for, session)
|
||||
|
||||
|
||||
def test_should_show_overview(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_overview(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_settings', service_id=service_id))
|
||||
@@ -16,10 +17,11 @@ def test_should_show_overview(app_, db_, db_session, active_user, mock_get_servi
|
||||
assert mock_get_service.called
|
||||
|
||||
|
||||
def test_should_show_service_name(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_service_name(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_name_change', service_id=service_id))
|
||||
@@ -30,11 +32,11 @@ def test_should_show_service_name(app_, db_, db_session, active_user, mock_get_s
|
||||
service = mock_get_service.side_effect(service_id)['data']
|
||||
|
||||
|
||||
def test_should_redirect_after_change_service_name(app_, db_, db_session, active_user, mock_get_service,
|
||||
mock_user_loader):
|
||||
def test_should_redirect_after_change_service_name(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_name_change', service_id=service_id))
|
||||
@@ -49,12 +51,13 @@ def test_should_redirect_after_change_service_name(app_, db_, db_session, active
|
||||
def test_should_show_service_name_confirmation(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_name_change_confirm', service_id=service_id))
|
||||
@@ -68,13 +71,14 @@ def test_should_show_service_name_confirmation(app_,
|
||||
def test_should_redirect_after_service_name_confirmation(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_update_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
service_new_name = 'New Name'
|
||||
with client.session_transaction() as session:
|
||||
@@ -91,10 +95,11 @@ def test_should_redirect_after_service_name_confirmation(app_,
|
||||
assert mock_update_service.called
|
||||
|
||||
|
||||
def test_should_show_request_to_go_live(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_request_to_go_live(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(
|
||||
url_for('main.service_request_to_go_live', service_id=service_id))
|
||||
@@ -108,13 +113,14 @@ def test_should_show_request_to_go_live(app_, db_, db_session, active_user, mock
|
||||
def test_should_redirect_after_request_to_go_live(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_update_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_request_to_go_live', service_id=service_id))
|
||||
@@ -127,10 +133,11 @@ def test_should_redirect_after_request_to_go_live(app_,
|
||||
assert mock_update_service.called
|
||||
|
||||
|
||||
def test_should_show_status_page(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_status_page(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_status_change', service_id=service_id))
|
||||
@@ -144,12 +151,13 @@ def test_should_show_status_page(app_, db_, db_session, active_user, mock_get_se
|
||||
def test_should_show_redirect_after_status_change(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_status_change', service_id=service_id))
|
||||
@@ -161,10 +169,11 @@ def test_should_show_redirect_after_status_change(app_,
|
||||
assert mock_get_service.called
|
||||
|
||||
|
||||
def test_should_show_status_confirmation(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_status_confirmation(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_status_change_confirm', service_id=service_id))
|
||||
@@ -178,13 +187,14 @@ def test_should_show_status_confirmation(app_, db_, db_session, active_user, moc
|
||||
def test_should_redirect_after_status_confirmation(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_update_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_status_change_confirm', service_id=service_id))
|
||||
@@ -197,10 +207,11 @@ def test_should_redirect_after_status_confirmation(app_,
|
||||
assert mock_update_service.called
|
||||
|
||||
|
||||
def test_should_show_delete_page(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_delete_page(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_delete', service_id=service_id))
|
||||
@@ -210,11 +221,11 @@ def test_should_show_delete_page(app_, db_, db_session, active_user, mock_get_se
|
||||
assert mock_get_service.called
|
||||
|
||||
|
||||
def test_should_show_redirect_after_deleting_service(app_, db_, db_session, active_user, mock_get_service,
|
||||
mock_user_loader):
|
||||
def test_should_show_redirect_after_deleting_service(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_delete', service_id=service_id))
|
||||
@@ -225,10 +236,11 @@ def test_should_show_redirect_after_deleting_service(app_, db_, db_session, acti
|
||||
assert delete_url == response.location
|
||||
|
||||
|
||||
def test_should_show_delete_confirmation(app_, db_, db_session, active_user, mock_get_service, mock_user_loader):
|
||||
def test_should_show_delete_confirmation(app_, db_, db_session, mock_api_user, mock_get_service,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'main.service_delete_confirm', service_id=service_id))
|
||||
@@ -241,13 +253,14 @@ def test_should_show_delete_confirmation(app_, db_, db_session, active_user, moc
|
||||
def test_should_redirect_delete_confirmation(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service,
|
||||
mock_delete_service,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.post(url_for(
|
||||
'main.service_delete_confirm', service_id=service_id))
|
||||
|
||||
@@ -4,6 +4,8 @@ from app.main.dao import users_dao
|
||||
from app.models import User
|
||||
from flask import url_for
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def test_render_sign_in_returns_sign_in_template(app_):
|
||||
with app_.test_request_context():
|
||||
@@ -19,15 +21,11 @@ def test_process_sign_in_return_2fa_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
user = User(email_address='valid@example.gov.uk',
|
||||
password='val1dPassw0rd!',
|
||||
mobile_number='+441234123123',
|
||||
name='valid',
|
||||
created_at=datetime.now(),
|
||||
role_id=1,
|
||||
state='active')
|
||||
users_dao.insert_user(user)
|
||||
mock_send_email,
|
||||
mock_user_dao_get_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email,
|
||||
mock_user_dao_checkpassword):
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post(
|
||||
url_for('main.sign_in'), data={
|
||||
@@ -37,17 +35,12 @@ def test_process_sign_in_return_2fa_template(app_,
|
||||
assert response.location == 'http://localhost/two-factor'
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='User failed logins not implemented yet')
|
||||
def test_should_return_locked_out_true_when_user_is_locked(app_,
|
||||
db_,
|
||||
db_session):
|
||||
user = User(email_address='valid@example.gov.uk',
|
||||
password='val1dPassw0rd!',
|
||||
mobile_number='+441234123123',
|
||||
name='valid',
|
||||
created_at=datetime.now(),
|
||||
role_id=1,
|
||||
state='active')
|
||||
users_dao.insert_user(user)
|
||||
db_session,
|
||||
mock_user_dao_get_user,
|
||||
mock_inactive_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
for _ in range(10):
|
||||
app_.test_client().post(
|
||||
@@ -71,51 +64,47 @@ def test_should_return_locked_out_true_when_user_is_locked(app_,
|
||||
assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_return_active_user_is_false_if_user_is_inactive(app_,
|
||||
db_,
|
||||
db_session):
|
||||
user = User(email_address='inactive_user@example.gov.uk',
|
||||
password='val1dPassw0rd!',
|
||||
mobile_number='+441234123123',
|
||||
name='inactive user',
|
||||
created_at=datetime.now(),
|
||||
role_id=1,
|
||||
state='inactive')
|
||||
users_dao.insert_user(user)
|
||||
# @pytest.mark.xfail(reason='User failed logins not implemented yet')
|
||||
# def test_should_return_active_user_is_false_if_user_is_inactive(app_,
|
||||
# db_,
|
||||
# db_session,
|
||||
# mock_user_dao_get_user,
|
||||
# mock_inactive_user_dao_get_by_email):
|
||||
# with app_.test_request_context():
|
||||
# response = app_.test_client().post(
|
||||
# url_for('main.sign_in'), data={
|
||||
# 'email_address': 'inactive_user@example.gov.uk',
|
||||
# 'password': 'val1dPassw0rd!'})
|
||||
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post(
|
||||
url_for('main.sign_in'), data={
|
||||
'email_address': 'inactive_user@example.gov.uk',
|
||||
'password': 'val1dPassw0rd!'})
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
# assert response.status_code == 200
|
||||
# assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_return_200_when_user_does_not_exist(app_, db_, db_session):
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post(
|
||||
url_for('main.sign_in'), data={
|
||||
'email_address': 'does_not_exist@gov.uk',
|
||||
'password': 'doesNotExist!'})
|
||||
assert response.status_code == 200
|
||||
assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
# def test_should_return_200_when_user_does_not_exist(app_, db_, db_session,
|
||||
# mock_user_dao_get_user,
|
||||
# mock_user_dao_get_by_email):
|
||||
# with app_.test_request_context():
|
||||
# response = app_.test_client().post(
|
||||
# url_for('main.sign_in'), data={
|
||||
# 'email_address': 'does_not_exist@gov.uk',
|
||||
# 'password': 'doesNotExist!'})
|
||||
# assert response.status_code == 200
|
||||
# assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_return_200_when_user_is_not_active(app_, db_, db_session):
|
||||
user = User(email_address='PendingUser@example.gov.uk',
|
||||
password='val1dPassw0rd!',
|
||||
mobile_number='+441234123123',
|
||||
name='pending user',
|
||||
created_at=datetime.now(),
|
||||
role_id=1,
|
||||
state='pending')
|
||||
users_dao.insert_user(user)
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post(
|
||||
url_for('main.sign_in'), data={
|
||||
'email_address': 'PendingUser@example.gov.uk',
|
||||
'password': 'val1dPassw0rd!'})
|
||||
assert response.status_code == 200
|
||||
assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
# def test_should_return_200_when_user_is_not_active(app_, db_, db_session):
|
||||
# user = User(email_address='PendingUser@example.gov.uk',
|
||||
# password='val1dPassw0rd!',
|
||||
# mobile_number='+441234123123',
|
||||
# name='pending user',
|
||||
# created_at=datetime.now(),
|
||||
# role_id=1,
|
||||
# state='pending')
|
||||
# users_dao.insert_user(user)
|
||||
# with app_.test_request_context():
|
||||
# response = app_.test_client().post(
|
||||
# url_for('main.sign_in'), data={
|
||||
# 'email_address': 'PendingUser@example.gov.uk',
|
||||
# 'password': 'val1dPassw0rd!'})
|
||||
# assert response.status_code == 200
|
||||
# assert 'Username or password is incorrect' in response.get_data(as_text=True)
|
||||
|
||||
@@ -19,20 +19,14 @@ def test_sign_out_user(app_,
|
||||
mock_send_sms,
|
||||
mock_send_email,
|
||||
mock_get_service,
|
||||
mock_user_loader):
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
email = 'valid@example.gov.uk'
|
||||
password = 'val1dPassw0rd!'
|
||||
user = User(email_address=email,
|
||||
password=password,
|
||||
mobile_number='+441234123123',
|
||||
name='valid',
|
||||
created_at=datetime.now(),
|
||||
role_id=1,
|
||||
state='active')
|
||||
users_dao.insert_user(user)
|
||||
with app_.test_client() as client:
|
||||
client.login(user)
|
||||
client.login(mock_api_user)
|
||||
# Check we are logged in
|
||||
response = client.get(
|
||||
url_for('main.service_dashboard', service_id="123"))
|
||||
|
||||
@@ -4,11 +4,13 @@ from flask import url_for
|
||||
import moto
|
||||
|
||||
|
||||
def test_upload_empty_csvfile_returns_to_upload_page(app_, db_, db_session, active_user,
|
||||
mock_user_loader):
|
||||
def test_upload_empty_csvfile_returns_to_upload_page(app_, db_, db_session,
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
upload_data = {'file': (BytesIO(''.encode('utf-8')), 'emtpy.csv')}
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data, follow_redirects=True)
|
||||
@@ -23,15 +25,16 @@ def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user,
|
||||
mock_user_loader):
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
|
||||
contents = 'phone\n+44 123\n+44 456'
|
||||
file_data = (BytesIO(contents.encode('utf-8')), 'invalid.csv')
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
upload_data = {'file': file_data}
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
@@ -49,8 +52,9 @@ def test_upload_csvfile_with_valid_phone_shows_first3_and_last3_numbers(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user,
|
||||
mock_user_loader):
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
|
||||
contents = 'phone\n+44 7700 900981\n+44 7700 900982\n+44 7700 900983\n+44 7700 900984\n+44 7700 900985\n+44 7700 900986\n+44 7700 900987\n+44 7700 900988\n+44 7700 900989' # noqa
|
||||
|
||||
@@ -58,7 +62,7 @@ def test_upload_csvfile_with_valid_phone_shows_first3_and_last3_numbers(app_,
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
upload_data = {'file': file_data}
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
@@ -86,8 +90,9 @@ def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user,
|
||||
mock_user_loader):
|
||||
mock_api_user,
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
|
||||
contents = 'phone\n+44 7700 900981\n+44 7700 900982\n+44 7700 900983\n+44 7700 900984\n+44 7700 900985\n+44 7700 900986' # noqa
|
||||
|
||||
@@ -95,7 +100,7 @@ def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(app_,
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
upload_data = {'file': file_data}
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
@@ -115,10 +120,11 @@ def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(app_,
|
||||
|
||||
|
||||
@moto.mock_s3
|
||||
def test_should_redirect_to_job(app_, db_, db_session, mocker, active_user, mock_user_loader):
|
||||
def test_should_redirect_to_job(app_, db_, db_session, mocker, mock_api_user,
|
||||
mock_user_loader, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
response = client.post(url_for('main.check_sms',
|
||||
service_id=123,
|
||||
upload_id='someid'))
|
||||
|
||||
@@ -5,12 +5,13 @@ from flask import url_for
|
||||
def test_should_return_list_of_all_templates(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service_templates,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
response = client.get(url_for(
|
||||
'.manage_service_templates', service_id=service_id))
|
||||
@@ -22,12 +23,13 @@ def test_should_return_list_of_all_templates(app_,
|
||||
def test_should_show_page_for_one_templates(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service_template,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
template_id = 456
|
||||
response = client.get(url_for(
|
||||
@@ -43,13 +45,14 @@ def test_should_show_page_for_one_templates(app_,
|
||||
def test_should_redirect_when_saving_a_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service_template,
|
||||
mock_update_service_template,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
template_id = 456
|
||||
name = "new name"
|
||||
@@ -77,12 +80,13 @@ def test_should_redirect_when_saving_a_template(app_,
|
||||
def test_should_show_delete_template_page(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service_template,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
template_id = 456
|
||||
response = client.get(url_for(
|
||||
@@ -99,13 +103,14 @@ def test_should_show_delete_template_page(app_,
|
||||
def test_should_redirect_when_deleting_a_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_api_user,
|
||||
mock_get_service_template,
|
||||
mock_delete_service_template,
|
||||
mock_user_loader):
|
||||
mock_user_loader,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
client.login(mock_api_user)
|
||||
service_id = 123
|
||||
template_id = 456
|
||||
name = "new name"
|
||||
|
||||
@@ -4,26 +4,24 @@ from app.main.dao import verify_codes_dao
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_render_two_factor_page(app_, db_, db_session):
|
||||
def test_should_render_two_factor_page(app_, db_, db_session, mock_api_user, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
# TODO this lives here until we work out how to
|
||||
# reassign the session after it is lost mid register process
|
||||
with client.session_transaction() as session:
|
||||
user = create_test_user('pending')
|
||||
session['user_email'] = user.email_address
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
response = client.get(url_for('main.two_factor'))
|
||||
assert response.status_code == 200
|
||||
assert '''We've sent you a text message with a verification code.''' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_login_user_and_redirect_to_dashboard(app_, db_, db_session):
|
||||
def test_should_login_user_and_redirect_to_dashboard(app_, db_, db_session, mock_api_user, mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
user = create_test_user('active')
|
||||
session['user_email'] = user.email_address
|
||||
verify_codes_dao.add_code(user_id=user.id, code='12345', code_type='sms')
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='12345', code_type='sms')
|
||||
response = client.post(url_for('main.two_factor'),
|
||||
data={'sms_code': '12345'})
|
||||
|
||||
@@ -33,13 +31,14 @@ def test_should_login_user_and_redirect_to_dashboard(app_, db_, db_session):
|
||||
|
||||
def test_should_return_200_with_sms_code_error_when_sms_code_is_wrong(app_,
|
||||
db_,
|
||||
db_session):
|
||||
db_session,
|
||||
mock_api_user,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
user = create_test_user('active')
|
||||
session['user_email'] = user.email_address
|
||||
verify_codes_dao.add_code(user_id=user.id, code='12345', code_type='sms')
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='12345', code_type='sms')
|
||||
response = client.post(url_for('main.two_factor'),
|
||||
data={'sms_code': '23456'})
|
||||
assert response.status_code == 200
|
||||
@@ -48,19 +47,20 @@ def test_should_return_200_with_sms_code_error_when_sms_code_is_wrong(app_,
|
||||
|
||||
def test_should_login_user_when_multiple_valid_codes_exist(app_,
|
||||
db_,
|
||||
db_session):
|
||||
db_session,
|
||||
mock_api_user,
|
||||
mock_user_dao_get_by_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
user = create_test_user('active')
|
||||
session['user_email'] = user.email_address
|
||||
verify_codes_dao.add_code(user_id=user.id, code='23456', code_type='sms')
|
||||
verify_codes_dao.add_code(user_id=user.id, code='12345', code_type='sms')
|
||||
verify_codes_dao.add_code(user_id=user.id, code='34567', code_type='sms')
|
||||
assert len(verify_codes_dao.get_codes(user_id=user.id, code_type='sms')) == 3
|
||||
session['user_email'] = mock_api_user.email_address
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='23456', code_type='sms')
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='12345', code_type='sms')
|
||||
verify_codes_dao.add_code(user_id=mock_api_user.id, code='34567', code_type='sms')
|
||||
assert len(verify_codes_dao.get_codes(user_id=mock_api_user.id, code_type='sms')) == 3
|
||||
response = client.post(url_for('main.two_factor'),
|
||||
data={'sms_code': '23456'})
|
||||
assert response.status_code == 302
|
||||
codes = verify_codes_dao.get_codes(user_id=user.id, code_type='sms')
|
||||
codes = verify_codes_dao.get_codes(user_id=mock_api_user.id, code_type='sms')
|
||||
# query will only return codes where code_used == False
|
||||
assert len(codes) == 0
|
||||
|
||||
Reference in New Issue
Block a user