mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-26 08:09:51 -04:00
Work in progress, all tests passing and implemented mocks for services_dao.
This commit is contained in:
@@ -8,11 +8,11 @@ from app.main.forms import AddServiceForm
|
||||
@main.route("/add-service", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def add_service():
|
||||
# TODO fix up this
|
||||
# TODO fix up this
|
||||
form = AddServiceForm(services_dao.find_all_service_names)
|
||||
if form.validate_on_submit():
|
||||
user = users_dao.get_user_by_id(session['user_id'])
|
||||
services_dao.insert_new_service(form.service_name.data, user)
|
||||
return redirect(url_for('.dashboard', service_id=123))
|
||||
service_id = services_dao.insert_new_service(form.service_name.data, user)
|
||||
return redirect(url_for('main.service_dashboard', service_id=service_id))
|
||||
else:
|
||||
return render_template('views/add-service.html', form=form)
|
||||
|
||||
@@ -8,7 +8,7 @@ from ._jobs import jobs
|
||||
|
||||
@main.route("/services/<int:service_id>/dashboard")
|
||||
@login_required
|
||||
def dashboard(service_id):
|
||||
def service_dashboard(service_id):
|
||||
try:
|
||||
service = get_service_by_id(service_id)
|
||||
except HTTPError as e:
|
||||
@@ -17,7 +17,7 @@ def dashboard(service_id):
|
||||
else:
|
||||
raise e
|
||||
return render_template(
|
||||
'views/dashboard.html',
|
||||
'views/service_dashboard.html',
|
||||
jobs=jobs,
|
||||
free_text_messages_remaining=560,
|
||||
spent_this_month='0.00',
|
||||
|
||||
@@ -10,31 +10,31 @@ def index():
|
||||
|
||||
@main.route("/register-from-invite")
|
||||
@login_required
|
||||
def registerfrominvite():
|
||||
def register_from_invite():
|
||||
return render_template('views/register-from-invite.html')
|
||||
|
||||
|
||||
@main.route("/verify-mobile")
|
||||
@login_required
|
||||
def verifymobile():
|
||||
def verify_mobile():
|
||||
return render_template('views/verify-mobile.html')
|
||||
|
||||
|
||||
@main.route("/services/<int:service_id>/send-email")
|
||||
@login_required
|
||||
def sendemail(service_id):
|
||||
def send_email(service_id):
|
||||
return render_template('views/send-email.html')
|
||||
|
||||
|
||||
@main.route("/services/<int:service_id>/check-email")
|
||||
@login_required
|
||||
def checkemail(service_id):
|
||||
def check_email(service_id):
|
||||
return render_template('views/check-email.html')
|
||||
|
||||
|
||||
@main.route("/services/<int:service_id>/manage-users")
|
||||
@login_required
|
||||
def manageusers(service_id):
|
||||
def manage_users(service_id):
|
||||
return render_template('views/manage-users.html', service_id=service_id)
|
||||
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ messages = [
|
||||
|
||||
@main.route("/services/<int:service_id>/jobs")
|
||||
@login_required
|
||||
def showjobs(service_id):
|
||||
def view_jobs(service_id):
|
||||
return render_template(
|
||||
'views/jobs.html',
|
||||
jobs=jobs,
|
||||
@@ -57,7 +57,7 @@ def showjobs(service_id):
|
||||
|
||||
@main.route("/services/<int:service_id>/jobs/<job_id>")
|
||||
@login_required
|
||||
def showjob(service_id, job_id):
|
||||
def view_job(service_id, job_id):
|
||||
|
||||
# TODO the uploaded file name could be part of job definition
|
||||
# so won't need to be passed on from last view via session
|
||||
@@ -86,7 +86,7 @@ def showjob(service_id, job_id):
|
||||
|
||||
@main.route("/services/<int:service_id>/jobs/<job_id>/notification/<string:notification_id>")
|
||||
@login_required
|
||||
def shownotification(service_id, job_id, notification_id):
|
||||
def view_notification(service_id, job_id, notification_id):
|
||||
return render_template(
|
||||
'views/notification.html',
|
||||
message=[
|
||||
|
||||
@@ -128,4 +128,4 @@ def confirm_delete(service_id):
|
||||
service_id=service_id
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.dashboard', service_id=service_id))
|
||||
return redirect(url_for('.service_dashboard', service_id=service_id))
|
||||
|
||||
@@ -43,7 +43,7 @@ message_templates = [
|
||||
|
||||
@main.route("/services/<int:service_id>/sms/send", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def sendsms(service_id):
|
||||
def send_sms(service_id):
|
||||
form = CsvUploadForm()
|
||||
if form.validate_on_submit():
|
||||
try:
|
||||
@@ -53,7 +53,7 @@ def sendsms(service_id):
|
||||
filename)
|
||||
csv_file.save(filepath)
|
||||
_check_file(csv_file.filename, filepath)
|
||||
return redirect(url_for('.checksms',
|
||||
return redirect(url_for('.check_sms',
|
||||
service_id=service_id,
|
||||
recipients=filename))
|
||||
except (IOError, ValueError) as e:
|
||||
@@ -63,7 +63,7 @@ def sendsms(service_id):
|
||||
if isinstance(e, ValueError):
|
||||
flash(str(e))
|
||||
os.remove(filepath)
|
||||
return redirect(url_for('.sendsms', service_id=service_id))
|
||||
return redirect(url_for('.send_sms', service_id=service_id))
|
||||
|
||||
return render_template('views/send-sms.html',
|
||||
message_templates=message_templates,
|
||||
@@ -73,7 +73,7 @@ def sendsms(service_id):
|
||||
|
||||
@main.route("/services/<int:service_id>/sms/check", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def checksms(service_id):
|
||||
def check_sms(service_id):
|
||||
if request.method == 'GET':
|
||||
filename = request.args.get('recipients')
|
||||
if not filename:
|
||||
@@ -100,10 +100,10 @@ def checksms(service_id):
|
||||
# TODO when job is created record filename in job itself
|
||||
# so downstream pages can get the original filename that way
|
||||
session[upload_id] = filename
|
||||
return redirect(url_for('main.showjob', service_id=service_id, job_id=upload_id))
|
||||
return redirect(url_for('main.view_job', service_id=service_id, job_id=upload_id))
|
||||
except:
|
||||
flash('There as a problem saving the file')
|
||||
return redirect(url_for('.checksms', recipients=filename))
|
||||
return redirect(url_for('.check_sms', recipients=filename))
|
||||
|
||||
|
||||
def _check_file(filename, filepath):
|
||||
|
||||
@@ -8,12 +8,12 @@ from app.main.forms import (
|
||||
|
||||
|
||||
@main.route("/user-profile")
|
||||
def userprofile():
|
||||
def user_profile():
|
||||
return render_template('views/user-profile.html')
|
||||
|
||||
|
||||
@main.route("/user-profile/name", methods=['GET', 'POST'])
|
||||
def userprofile_name():
|
||||
def user_profile_name():
|
||||
|
||||
form = ChangeNameForm()
|
||||
|
||||
@@ -26,11 +26,11 @@ def userprofile_name():
|
||||
form_field=form.new_name
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile'))
|
||||
return redirect(url_for('.user_profile'))
|
||||
|
||||
|
||||
@main.route("/user-profile/email", methods=['GET', 'POST'])
|
||||
def userprofile_email():
|
||||
def user_profile_email():
|
||||
|
||||
form = ChangeEmailForm()
|
||||
|
||||
@@ -43,11 +43,11 @@ def userprofile_email():
|
||||
form_field=form.email_address
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile_email_authenticate'))
|
||||
return redirect(url_for('.user_profile_email_authenticate'))
|
||||
|
||||
|
||||
@main.route("/user-profile/email/authenticate", methods=['GET', 'POST'])
|
||||
def userprofile_email_authenticate():
|
||||
def user_profile_email_authenticate():
|
||||
|
||||
form = ConfirmPasswordForm()
|
||||
|
||||
@@ -56,14 +56,14 @@ def userprofile_email_authenticate():
|
||||
'views/user-profile/authenticate.html',
|
||||
thing='email address',
|
||||
form=form,
|
||||
back_link=url_for('.userprofile_email')
|
||||
back_link=url_for('.user_profile_email')
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile_email_confirm'))
|
||||
return redirect(url_for('.user_profile_email_confirm'))
|
||||
|
||||
|
||||
@main.route("/user-profile/email/confirm", methods=['GET', 'POST'])
|
||||
def userprofile_email_confirm():
|
||||
def user_profile_email_confirm():
|
||||
|
||||
form = ConfirmEmailForm()
|
||||
|
||||
@@ -74,11 +74,11 @@ def userprofile_email_confirm():
|
||||
thing='email address'
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile'))
|
||||
return redirect(url_for('.user_profile'))
|
||||
|
||||
|
||||
@main.route("/user-profile/mobile-number", methods=['GET', 'POST'])
|
||||
def userprofile_mobile_number():
|
||||
def user_profile_mobile_number():
|
||||
|
||||
form = ChangeMobileNumberForm()
|
||||
|
||||
@@ -91,11 +91,11 @@ def userprofile_mobile_number():
|
||||
form_field=form.mobile_number
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile_mobile_number_authenticate'))
|
||||
return redirect(url_for('.user_profile_mobile_number_authenticate'))
|
||||
|
||||
|
||||
@main.route("/user-profile/mobile-number/authenticate", methods=['GET', 'POST'])
|
||||
def userprofile_mobile_number_authenticate():
|
||||
def user_profile_mobile_number_authenticate():
|
||||
|
||||
form = ConfirmPasswordForm()
|
||||
|
||||
@@ -104,14 +104,14 @@ def userprofile_mobile_number_authenticate():
|
||||
'views/user-profile/authenticate.html',
|
||||
thing='mobile number',
|
||||
form=form,
|
||||
back_link=url_for('.userprofile_mobile_number_confirm')
|
||||
back_link=url_for('.user_profile_mobile_number_confirm')
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile_mobile_number_confirm'))
|
||||
return redirect(url_for('.user_profile_mobile_number_confirm'))
|
||||
|
||||
|
||||
@main.route("/user-profile/mobile-number/confirm", methods=['GET', 'POST'])
|
||||
def userprofile_mobile_number_confirm():
|
||||
def user_profile_mobile_number_confirm():
|
||||
|
||||
form = ConfirmMobileNumberForm()
|
||||
|
||||
@@ -122,11 +122,11 @@ def userprofile_mobile_number_confirm():
|
||||
thing='mobile number'
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile'))
|
||||
return redirect(url_for('.user_profile'))
|
||||
|
||||
|
||||
@main.route("/user-profile/password", methods=['GET', 'POST'])
|
||||
def userprofile_password():
|
||||
def user_profile_password():
|
||||
|
||||
form = ChangePasswordForm()
|
||||
|
||||
@@ -136,4 +136,4 @@ def userprofile_password():
|
||||
form=form
|
||||
)
|
||||
elif request.method == 'POST':
|
||||
return redirect(url_for('.userprofile'))
|
||||
return redirect(url_for('.user_profile'))
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
{% if not current_user.is_authenticated() %}
|
||||
{% set homepage_url = url_for('main.index') %}
|
||||
{% else %}
|
||||
{% set homepage_url = url_for('main.dashboard', service_id=123) %}
|
||||
{% set homepage_url = url_for('main.choose_service') %}
|
||||
{% endif %}
|
||||
|
||||
{% block content %}
|
||||
@@ -60,7 +60,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="column-half management-navigation-account">
|
||||
<a href="{{ url_for('main.userprofile') }}">{{ current_user.name }}</a>
|
||||
<a href="{{ url_for('main.user_profile') }}">{{ current_user.name }}</a>
|
||||
<a href="{{ url_for('main.sign_out')}}">Sign out</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<nav class="navigation">
|
||||
<ul>
|
||||
<li><a href="{{ url_for('.dashboard', service_id=123) }}">Dashboard</a></li>
|
||||
<li><a href="{{ url_for('.service_dashboard', service_id=123) }}">Dashboard</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="{{ url_for('.sendsms', service_id=123) }}">Send text messages</a></li>
|
||||
<li><a href="{{ url_for('.sendemail', service_id=123) }}">Send emails</a></li>
|
||||
<li><a href="{{ url_for('.showjobs', service_id=123) }}">Activity</a></li>
|
||||
<li><a href="{{ url_for('.send_sms', service_id=123) }}">Send text messages</a></li>
|
||||
<li><a href="{{ url_for('.send_email', service_id=123) }}">Send emails</a></li>
|
||||
<li><a href="{{ url_for('.view_jobs', service_id=123) }}">Activity</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="{{ url_for('.apikeys', service_id=123) }}">API keys and documentation</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="{{ url_for('.manageusers', service_id=123) }}">Manage users</a></li>
|
||||
<li><a href="{{ url_for('.manage_users', service_id=123) }}">Manage users</a></li>
|
||||
<li><a href="{{ url_for('.service_settings', service_id=123) }}">Service settings</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -12,7 +12,7 @@ GOV.UK Notify | API keys and documentation
|
||||
<p>Here's where developers can access information about the API and access keys</p>
|
||||
|
||||
{{ page_footer(
|
||||
back_link=url_for('.dashboard', service_id=service_id),
|
||||
back_link=url_for('.service_dashboard', service_id=service_id),
|
||||
back_link_text='Back to dashboard'
|
||||
) }}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
{% for rejected in upload_result.rejects %}
|
||||
<p>Line {{rejected.line_number}}: {{rejected.phone }}</a>
|
||||
{% endfor %}
|
||||
<p><a href="{{url_for('.sendsms', service_id=service_id)}}" class="button">Go back and resolve errors</a></p>
|
||||
<p><a href="{{url_for('.send_sms', service_id=service_id)}}" class="button">Go back and resolve errors</a></p>
|
||||
|
||||
{% else %}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
{{ page_footer(
|
||||
button_text = "Send {} text messages".format(upload_result.valid|count),
|
||||
back_link = url_for(".sendsms", service_id=service_id)
|
||||
back_link = url_for(".send_sms", service_id=service_id)
|
||||
)}}
|
||||
|
||||
{% if upload_result.valid | count > 6 %}
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
{{ page_footer(
|
||||
button_text = "Send {} text messages".format(upload_result.valid|count),
|
||||
back_link = url_for(".sendsms", service_id=service_id)
|
||||
back_link = url_for(".send_sms", service_id=service_id)
|
||||
)}}
|
||||
|
||||
<input type='hidden' name='recipients' value='{{filename}}'>
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
{{ browse_list([
|
||||
{
|
||||
'title': 'MOT Reminders',
|
||||
'link': url_for('.dashboard', service_id=123)
|
||||
'link': url_for('.service_dashboard', service_id=123)
|
||||
},
|
||||
{
|
||||
'title': 'Vehicle Tax',
|
||||
'link': url_for('.dashboard', service_id=123)
|
||||
'link': url_for('.service_dashboard', service_id=123)
|
||||
},
|
||||
]) }}
|
||||
{{ browse_list([
|
||||
|
||||
@@ -15,7 +15,7 @@ GOV.UK Notify | Edit template
|
||||
{{ textbox(form.template_body, highlight_tags=True) }}
|
||||
{{ page_footer(
|
||||
'Save and continue',
|
||||
back_link=url_for('.dashboard', service_id=service_id),
|
||||
back_link=url_for('.service_dashboard', service_id=service_id),
|
||||
back_link_text='Back to manage templates'
|
||||
) }}
|
||||
</form>
|
||||
|
||||
@@ -52,10 +52,10 @@ GOV.UK Notify | Notifications activity
|
||||
]
|
||||
) %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.shownotification', service_id=service_id, job_id=456, notification_id=item.id) }}">{{item.phone}}</a>
|
||||
<a href="{{ url_for('.view_notification', service_id=service_id, job_id=456, notification_id=item.id) }}">{{item.phone}}</a>
|
||||
{% endcall %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.shownotification', service_id=service_id, job_id=456, notification_id=item.id) }}">{{item.message[:50]}}…</a>
|
||||
<a href="{{ url_for('.view_notification', service_id=service_id, job_id=456, notification_id=item.id) }}">{{item.message[:50]}}…</a>
|
||||
{% endcall %}
|
||||
{% call field(
|
||||
align='right',
|
||||
|
||||
@@ -16,10 +16,10 @@ GOV.UK Notify | Notifications activity
|
||||
field_headings=['Job', 'File', 'Time', 'Status']
|
||||
) %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.showjob', service_id=service_id, job_id=456) }}">{{ item.file }}</a>
|
||||
<a href="{{ url_for('.view_job', service_id=service_id, job_id=456) }}">{{ item.file }}</a>
|
||||
{% endcall %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.showjob', service_id=service_id, job_id=456) }}">{{ item.job }}</a>
|
||||
<a href="{{ url_for('.view_job', service_id=service_id, job_id=456) }}">{{ item.job }}</a>
|
||||
{% endcall %}
|
||||
{% call field() %}
|
||||
{{ item.time }}
|
||||
|
||||
@@ -12,7 +12,7 @@ GOV.UK Notify | Manage users
|
||||
<p>Here's where you can add or remove users of a service.</p>
|
||||
|
||||
{{ page_footer(
|
||||
back_link = url_for('.dashboard', service_id=service_id),
|
||||
back_link = url_for('.service_dashboard', service_id=service_id),
|
||||
back_link_text = 'Back to dashboard'
|
||||
) }}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ GOV.UK Notify | Notifications activity
|
||||
</div>
|
||||
|
||||
{{ page_footer(
|
||||
back_link = url_for('.showjob', service_id=service_id, job_id=job_id),
|
||||
back_link = url_for('.view_job', service_id=service_id, job_id=job_id),
|
||||
back_link_text = 'View other messages in this job'
|
||||
) }}
|
||||
|
||||
|
||||
@@ -30,10 +30,10 @@
|
||||
field_headings=['Job', 'File', 'Time', 'Status']
|
||||
) %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.showjob', service_id=service_id, job_id=456) }}">{{ item.file }}</a>
|
||||
<a href="{{ url_for('.view_job', service_id=service_id, job_id=456) }}">{{ item.file }}</a>
|
||||
{% endcall %}
|
||||
{% call field() %}
|
||||
<a href="{{ url_for('.showjob', service_id=service_id, job_id=456) }}">{{ item.job }}</a>
|
||||
<a href="{{ url_for('.view_job', service_id=service_id, job_id=456) }}">{{ item.job }}</a>
|
||||
{% endcall %}
|
||||
{% call field() %}
|
||||
{{ item.time }}
|
||||
@@ -43,7 +43,7 @@
|
||||
{% endcall %}
|
||||
{% endcall %}
|
||||
<p>
|
||||
<a href={{ url_for('.showjobs', service_id=service_id) }}>See all notifications activity</a>
|
||||
<a href={{ url_for('.view_jobs', service_id=service_id) }}>See all notifications activity</a>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
|
||||
{% call(item) list_table(
|
||||
[
|
||||
{'label': 'Name', 'value': current_user.name, 'url': url_for('.userprofile_name')},
|
||||
{'label': 'Email address', 'value': current_user.email_address, 'url': url_for('.userprofile_email')},
|
||||
{'label': 'Mobile number', 'value': current_user.mobile_number, 'url': url_for('.userprofile_mobile_number')},
|
||||
{'label': 'Password', 'value': 'Last changed 1 January 2016, 10:00AM', 'url': url_for('.userprofile_password')},
|
||||
{'label': 'Name', 'value': current_user.name, 'url': url_for('.user_profile_name')},
|
||||
{'label': 'Email address', 'value': current_user.email_address, 'url': url_for('.user_profile_email')},
|
||||
{'label': 'Mobile number', 'value': current_user.mobile_number, 'url': url_for('.user_profile_mobile_number')},
|
||||
{'label': 'Password', 'value': 'Last changed 1 January 2016, 10:00AM', 'url': url_for('.user_profile_password')},
|
||||
],
|
||||
caption='Account settings',
|
||||
field_headings=['Setting', 'Value', 'Link to change'],
|
||||
|
||||
@@ -17,7 +17,7 @@ GOV.UK Notify | Service settings
|
||||
{{ textbox(form.new_password) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
back_link=url_for('.userprofile'),
|
||||
back_link=url_for('.user_profile'),
|
||||
back_link_text="Back to your profile"
|
||||
) }}
|
||||
</form>
|
||||
|
||||
@@ -21,7 +21,7 @@ GOV.UK Notify | Service settings
|
||||
{{ textbox(form_field) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
back_link=url_for('.userprofile'),
|
||||
back_link=url_for('.user_profile'),
|
||||
back_link_text="Back to your profile"
|
||||
) }}
|
||||
</form>
|
||||
|
||||
@@ -20,7 +20,7 @@ GOV.UK Notify | Service settings
|
||||
{{ page_footer(
|
||||
'Confirm',
|
||||
destructive=destructive,
|
||||
back_link=url_for('.userprofile')
|
||||
back_link=url_for('.user_profile')
|
||||
) }}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -5,8 +5,10 @@ from werkzeug.datastructures import MultiDict
|
||||
def test_form_should_have_errors_when_duplicate_service_is_added(app_,
|
||||
db_,
|
||||
db_session):
|
||||
def _get_form_names():
|
||||
return ['some service', 'more names']
|
||||
with app_.test_request_context():
|
||||
form = AddServiceForm(['some service', 'more names'],
|
||||
form = AddServiceForm(_get_form_names,
|
||||
formdata=MultiDict([('service_name', 'some service')]))
|
||||
form.validate()
|
||||
assert {'service_name': ['Service name already exists']} == form.errors
|
||||
|
||||
@@ -2,12 +2,12 @@ from datetime import datetime, timedelta
|
||||
|
||||
from app.main.dao import verify_codes_dao
|
||||
from app.main.forms import TwoFactorForm
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_form_is_valid_returns_no_errors(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '12345'}) as req:
|
||||
data={'sms_code': '12345'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = TwoFactorForm(codes)
|
||||
@@ -17,7 +17,7 @@ def test_form_is_valid_returns_no_errors(app_, db_, db_session):
|
||||
|
||||
def test_returns_errors_when_code_is_too_short(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '145'}) as req:
|
||||
data={'sms_code': '145'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = TwoFactorForm(codes)
|
||||
@@ -28,7 +28,7 @@ def test_returns_errors_when_code_is_too_short(app_, db_, db_session):
|
||||
|
||||
def test_returns_errors_when_code_is_missing(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={}) as req:
|
||||
data={}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = TwoFactorForm(codes)
|
||||
@@ -39,7 +39,7 @@ def test_returns_errors_when_code_is_missing(app_, db_, db_session):
|
||||
|
||||
def test_returns_errors_when_code_contains_letters(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': 'asdfg'}) as req:
|
||||
data={'sms_code': 'asdfg'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = TwoFactorForm(codes)
|
||||
@@ -50,7 +50,7 @@ def test_returns_errors_when_code_contains_letters(app_, db_, db_session):
|
||||
|
||||
def test_should_return_errors_when_code_is_expired(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '23456'}) as req:
|
||||
data={'sms_code': '23456'}) as req:
|
||||
user = create_test_user('active')
|
||||
verify_codes_dao.add_code_with_expiry(user_id=user.id,
|
||||
code='23456',
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
from datetime import datetime, timedelta
|
||||
from app.main.dao import verify_codes_dao
|
||||
from app.main.forms import VerifyForm
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_form_should_have_error_when_code_is_not_valid(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '12345aa', 'email_code': 'abcde'}) as req:
|
||||
data={'sms_code': '12345aa', 'email_code': 'abcde'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = VerifyForm(codes)
|
||||
@@ -21,7 +21,7 @@ def test_form_should_have_error_when_code_is_not_valid(app_, db_, db_session):
|
||||
|
||||
def test_should_return_errors_when_code_missing(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={}) as req:
|
||||
data={}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = VerifyForm(codes)
|
||||
@@ -35,7 +35,7 @@ def test_should_return_errors_when_code_missing(app_, db_, db_session):
|
||||
|
||||
def test_should_return_errors_when_code_is_too_short(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '123', 'email_code': '123'}) as req:
|
||||
data={'sms_code': '123', 'email_code': '123'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = VerifyForm(codes)
|
||||
@@ -49,7 +49,7 @@ def test_should_return_errors_when_code_is_too_short(app_, db_, db_session):
|
||||
|
||||
def test_should_return_errors_when_code_does_not_match(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '34567', 'email_code': '34567'}) as req:
|
||||
data={'sms_code': '34567', 'email_code': '34567'}) as req:
|
||||
user = set_up_test_data()
|
||||
codes = verify_codes_dao.get_codes(user.id)
|
||||
form = VerifyForm(codes)
|
||||
@@ -63,8 +63,8 @@ def test_should_return_errors_when_code_does_not_match(app_, db_, db_session):
|
||||
|
||||
def test_should_return_errors_when_code_is_expired(app_, db_, db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '23456',
|
||||
'email_code': '23456'}) as req:
|
||||
data={'sms_code': '23456',
|
||||
'email_code': '23456'}) as req:
|
||||
user = create_test_user('pending')
|
||||
verify_codes_dao.add_code_with_expiry(user_id=user.id,
|
||||
code='23456',
|
||||
@@ -89,8 +89,8 @@ def test_should_return_valid_form_when_many_codes_exist(app_,
|
||||
db_,
|
||||
db_session):
|
||||
with app_.test_request_context(method='POST',
|
||||
data={'sms_code': '23456',
|
||||
'email_code': '23456'}) as req:
|
||||
data={'sms_code': '23456',
|
||||
'email_code': '23456'}) as req:
|
||||
user = set_up_test_data()
|
||||
verify_codes_dao.add_code(user_id=user.id, code='23456', code_type='email')
|
||||
verify_codes_dao.add_code(user_id=user.id, code='23456', code_type='sms')
|
||||
|
||||
@@ -4,14 +4,12 @@ from tests import create_test_user
|
||||
from app.models import User
|
||||
|
||||
|
||||
def test_get_should_render_add_service_template(app_, db_, db_session):
|
||||
def test_get_should_render_add_service_template(app_, db_, db_session, mock_get_service):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
verify_codes_dao.add_code(user_id=user.id, code='12345', code_type='sms')
|
||||
client.post(url_for('main.two_factor'), data={'sms_code': '12345'})
|
||||
response = client.get('/add-service')
|
||||
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)
|
||||
|
||||
@@ -29,7 +27,7 @@ def test_should_add_service_and_redirect_to_next_page(app_,
|
||||
url_for('main.add_service'),
|
||||
data={'service_name': 'testing the post'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.dashboard', service_id=123, _external=True)
|
||||
assert response.location == url_for('main.service_dashboard', service_id=101, _external=True)
|
||||
assert mock_create_service.called
|
||||
assert mock_get_services.called
|
||||
|
||||
@@ -37,11 +35,12 @@ 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):
|
||||
active_user,
|
||||
mock_get_service):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
response = client.post('/add-service', data={})
|
||||
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)
|
||||
|
||||
@@ -54,7 +53,8 @@ def test_should_return_form_errors_with_duplicate_service_name(app_,
|
||||
with app_.test_client() as client:
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
response = client.post('/add-service', data={'service_name': 'service_one'})
|
||||
response = client.post(
|
||||
url_for('main.add_service'), data={'service_name': 'service_one'})
|
||||
assert response.status_code == 200
|
||||
assert 'Service name already exists' in response.get_data(as_text=True)
|
||||
assert mock_get_services.called
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_show_choose_services_page(app_,
|
||||
db_,
|
||||
db_session):
|
||||
db_session,
|
||||
active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
response = client.get('/services')
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('main.choose_service'))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Choose service' in response.get_data(as_text=True)
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
from app.main.dao import verify_codes_dao, users_dao
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_render_email_code_not_received_template_and_populate_email_address(db_,
|
||||
def test_should_render_email_code_not_received_template_and_populate_email_address(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -19,7 +20,8 @@ def test_should_render_email_code_not_received_template_and_populate_email_addre
|
||||
assert 'value="test@user.gov.uk"' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_check_and_resend_email_code_redirect_to_verify(db_,
|
||||
def test_should_check_and_resend_email_code_redirect_to_verify(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -35,14 +37,14 @@ def test_should_check_and_resend_email_code_redirect_to_verify(db_,
|
||||
assert response.location == url_for('main.verify', _external=True)
|
||||
|
||||
|
||||
def test_should_render_text_code_not_received_template(db_,
|
||||
def test_should_render_text_code_not_received_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
with client.session_transaction() as session:
|
||||
_set_up_mocker(mocker)
|
||||
user = create_test_user('pending')
|
||||
session['user_email'] = user.email_address
|
||||
verify_codes_dao.add_code(user.id, code='12345', code_type='sms')
|
||||
@@ -53,7 +55,8 @@ def test_should_render_text_code_not_received_template(db_,
|
||||
assert 'value="+441234123412"'
|
||||
|
||||
|
||||
def test_should_check_and_redirect_to_verify(db_,
|
||||
def test_should_check_and_redirect_to_verify(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -69,7 +72,8 @@ def test_should_check_and_redirect_to_verify(db_,
|
||||
assert response.location == url_for('main.verify', _external=True)
|
||||
|
||||
|
||||
def test_should_update_email_address_resend_code(db_,
|
||||
def test_should_update_email_address_resend_code(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -87,7 +91,8 @@ def test_should_update_email_address_resend_code(db_,
|
||||
assert updated_user.email_address == 'new@address.gov.uk'
|
||||
|
||||
|
||||
def test_should_update_mobile_number_resend_code(db_,
|
||||
def test_should_update_mobile_number_resend_code(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -105,13 +110,14 @@ def test_should_update_mobile_number_resend_code(db_,
|
||||
assert updated_user.mobile_number == '+44 7700 900 460'
|
||||
|
||||
|
||||
def test_should_render_verification_code_not_received(db_,
|
||||
db_session):
|
||||
def test_should_render_verification_code_not_received(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user):
|
||||
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
|
||||
session['user_email'] = active_user.email_address
|
||||
response = client.get(url_for('main.verification_code_not_received'))
|
||||
assert response.status_code == 200
|
||||
assert 'Resend verification code' in response.get_data(as_text=True)
|
||||
@@ -119,34 +125,36 @@ def test_should_render_verification_code_not_received(db_,
|
||||
'speak to your service manager to reset the number.' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_check_and_redirect_to_two_factor(db_,
|
||||
def test_check_and_redirect_to_two_factor(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_send_sms,
|
||||
mock_send_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
|
||||
session['user_email'] = active_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)
|
||||
|
||||
|
||||
def test_should_create_new_code_for_user(db_,
|
||||
def test_should_create_new_code_for_user(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_send_sms,
|
||||
mock_send_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'] = active_user.email_address
|
||||
verify_codes_dao.add_code(user_id=active_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=user.id, code_type='sms')
|
||||
codes = verify_codes_dao.get_codes(user_id=active_user.id, code_type='sms')
|
||||
assert len(codes) == 2
|
||||
for x in ([used.code_used for used in codes]):
|
||||
assert x is False
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
from tests.app.main import create_test_user
|
||||
from app.models import User
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_show_recent_jobs_on_dashboard(app_,
|
||||
db_,
|
||||
db_session):
|
||||
db_session,
|
||||
active_user,
|
||||
mock_get_service):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
response = client.get('/services/123/dashboard')
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('main.service_dashboard', service_id=123))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Test message 1' in response.get_data(as_text=True)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from flask import url_for
|
||||
from app.main.dao import users_dao
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_render_forgot_password(app_, db_, db_session):
|
||||
|
||||
@@ -1,39 +1,45 @@
|
||||
from tests.app.main import create_test_user
|
||||
from flask import url_for
|
||||
from app.models import User
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_return_list_of_all_jobs(app_, db_, db_session):
|
||||
def test_should_return_list_of_all_jobs(app_, db_, db_session, service_one):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
response = client.get('/services/123/jobs')
|
||||
response = client.get(url_for('main.view_jobs', service_id=101))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Test message 1' in response.get_data(as_text=True)
|
||||
assert 'Final reminder' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_show_page_for_one_job(app_, db_, db_session):
|
||||
def test_should_show_page_for_one_job(app_, db_, db_session, service_one):
|
||||
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'
|
||||
user = create_test_user('active')
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
response = client.get('/services/123/jobs/456')
|
||||
response = client.get(url_for('main.view_job', service_id=123, job_id=456))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'dispatch_20151114.csv' in response.get_data(as_text=True)
|
||||
assert 'Test message 1' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_show_page_for_one_notification(app_, db_, db_session):
|
||||
def test_should_show_page_for_one_notification(app_, db_, db_session, service_one):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
user = User.query.first()
|
||||
client.login(user)
|
||||
response = client.get('/services/123/jobs/456/notification/3')
|
||||
response = client.get(url_for(
|
||||
'main.view_notification',
|
||||
service_id=101,
|
||||
job_id=123,
|
||||
notification_id=3))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Text message' in response.get_data(as_text=True)
|
||||
|
||||
@@ -3,10 +3,10 @@ from flask import url_for
|
||||
from app.main.dao import users_dao
|
||||
from app.main.encryption import check_hash
|
||||
from app.notify_client.sender import generate_token
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_render_new_password_template(db_, db_session):
|
||||
def test_should_render_new_password_template(app_, db_, db_session):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('request_password_reset')
|
||||
@@ -16,7 +16,7 @@ def test_should_render_new_password_template(db_, db_session):
|
||||
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(db_, db_session):
|
||||
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')
|
||||
@@ -27,7 +27,8 @@ def test_should_render_new_password_template_with_message_of_bad_token(db_, db_s
|
||||
response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_redirect_to_two_factor_when_password_reset_is_successful(db_,
|
||||
def test_should_redirect_to_two_factor_when_password_reset_is_successful(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms):
|
||||
with app_.test_request_context():
|
||||
@@ -42,7 +43,8 @@ def test_should_redirect_to_two_factor_when_password_reset_is_successful(db_,
|
||||
assert saved_user.state == 'active'
|
||||
|
||||
|
||||
def test_should_redirect_to_forgot_password_with_flash_message_when_token_is_expired(db_,
|
||||
def test_should_redirect_to_forgot_password_with_flash_message_when_token_is_expired(app_,
|
||||
db_,
|
||||
db_session):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
@@ -55,7 +57,8 @@ def test_should_redirect_to_forgot_password_with_flash_message_when_token_is_exp
|
||||
app_.config['TOKEN_MAX_AGE_SECONDS'] = 3600
|
||||
|
||||
|
||||
def test_should_redirect_to_forgot_password_when_user_is_active_should_be_request_password_reset(db_,
|
||||
def test_should_redirect_to_forgot_password_when_user_is_active_should_be_request_password_reset(app_,
|
||||
db_,
|
||||
db_session):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
|
||||
@@ -1,26 +1,30 @@
|
||||
from flask import url_for
|
||||
|
||||
def test_render_register_returns_template_with_form(db_, db_session):
|
||||
|
||||
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)
|
||||
|
||||
|
||||
def test_process_register_creates_new_user(db_,
|
||||
def test_process_register_creates_new_user(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Some One Valid',
|
||||
'email_address': 'someone@example.gov.uk',
|
||||
'mobile_number': '+4407700900460',
|
||||
'password': 'validPassword!'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.verify', _external=True)
|
||||
with app_.test_request_context():
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Some One Valid',
|
||||
'email_address': 'someone@example.gov.uk',
|
||||
'mobile_number': '+4407700900460',
|
||||
'password': 'validPassword!'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.verify', _external=True)
|
||||
|
||||
|
||||
def test_process_register_returns_400_when_mobile_number_is_invalid(db_,
|
||||
def test_process_register_returns_400_when_mobile_number_is_invalid(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -34,7 +38,8 @@ def test_process_register_returns_400_when_mobile_number_is_invalid(db_,
|
||||
assert 'Must be a UK mobile number (eg 07700 900460)' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_return_400_when_email_is_not_gov_uk(db_,
|
||||
def test_should_return_400_when_email_is_not_gov_uk(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -48,7 +53,8 @@ def test_should_return_400_when_email_is_not_gov_uk(db_,
|
||||
assert 'Enter a gov.uk email address' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_add_verify_codes_on_session(db_,
|
||||
def test_should_add_verify_codes_on_session(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
@@ -62,7 +68,7 @@ def test_should_add_verify_codes_on_session(db_,
|
||||
assert 'notify_admin_session' in response.headers.get('Set-Cookie')
|
||||
|
||||
|
||||
def test_should_return_400_if_password_is_blacklisted(db_, db_session):
|
||||
def test_should_return_400_if_password_is_blacklisted(app_, db_, db_session):
|
||||
response = app_.test_client().post('/register',
|
||||
data={'name': 'Bad Mobile',
|
||||
'email_address': 'bad_mobile@example.not.right',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_show_overview(app_, db_, db_session):
|
||||
|
||||
@@ -3,8 +3,6 @@ from flask import url_for
|
||||
from app.main.dao import users_dao
|
||||
from app.models import User
|
||||
|
||||
from .test_sign_in import _set_up_mocker
|
||||
|
||||
|
||||
def test_render_sign_out_redirects_to_sign_in(app_):
|
||||
with app_.test_request_context():
|
||||
@@ -19,7 +17,8 @@ def test_sign_out_user(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mock_send_sms,
|
||||
mock_send_email):
|
||||
mock_send_email,
|
||||
mock_get_service):
|
||||
with app_.test_request_context():
|
||||
email = 'valid@example.gov.uk'
|
||||
password = 'val1dPassw0rd!'
|
||||
@@ -34,7 +33,8 @@ def test_sign_out_user(app_,
|
||||
with app_.test_client() as client:
|
||||
client.login(user)
|
||||
# Check we are logged in
|
||||
response = client.get('/services/123/dashboard')
|
||||
response = client.get(
|
||||
url_for('main.service_dashboard', service_id="123"))
|
||||
assert response.status_code == 200
|
||||
response = client.get(url_for('main.sign_out'))
|
||||
assert response.status_code == 302
|
||||
|
||||
@@ -2,7 +2,7 @@ from io import BytesIO
|
||||
from unittest import mock
|
||||
from unittest.mock import mock_open
|
||||
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_upload_empty_csvfile_returns_to_upload_page(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_return_list_of_all_templates(app_, db_, db_session):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from flask import json, url_for
|
||||
|
||||
from app.main.dao import verify_codes_dao
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_render_two_factor_page(app_, db_, db_session):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from flask import json, url_for
|
||||
from app.main.dao import users_dao, verify_codes_dao
|
||||
from tests.app.main import create_test_user
|
||||
from tests import create_test_user
|
||||
|
||||
|
||||
def test_should_return_verify_template(app_, db_, db_session):
|
||||
|
||||
@@ -124,5 +124,4 @@ def mock_get_services(mocker, active_user):
|
||||
return {'data': [service_one, service_two]}
|
||||
mock_class = mocker.patch(
|
||||
'app.notifications_api_client.get_services', side_effect=_create)
|
||||
return mock_class
|
||||
|
||||
return mock_class
|
||||
|
||||
Reference in New Issue
Block a user