Merge branch 'master' into revalidate-csv-file

This commit is contained in:
Rebecca Law
2016-03-03 15:38:14 +00:00
23 changed files with 374 additions and 161 deletions

View File

@@ -0,0 +1,41 @@
import pytest
from app.notify_client.notification_api_client import NotificationApiClient
def test_client_gets_notifications(mocker):
mock_get = mocker.patch('app.notify_client.notification_api_client.NotificationApiClient.get')
NotificationApiClient().get_all_notifications()
mock_get.assert_called_once_with(url='/notifications', params={})
def test_client_gets_notifications_with_page(mocker):
mock_get = mocker.patch('app.notify_client.notification_api_client.NotificationApiClient.get')
NotificationApiClient().get_all_notifications(page=99)
mock_get.assert_called_once_with(url='/notifications', params={'page': 99})
@pytest.mark.parametrize("arguments,expected_call", [
(
{},
{'url': '/service/abcd1234/notifications', 'params': {}}
),
(
{'page': 99},
{'url': '/service/abcd1234/notifications', 'params': {'page': 99}}
),
(
{'job_id': 'efgh5678'},
{'url': '/service/abcd1234/job/efgh5678/notifications', 'params': {}}
),
(
{'job_id': 'efgh5678', 'page': 48},
{'url': '/service/abcd1234/job/efgh5678/notifications', 'params': {'page': 48}}
)
])
def test_client_gets_notifications_for_service_and_job_by_page(mocker, arguments, expected_call):
mock_get = mocker.patch('app.notify_client.notification_api_client.NotificationApiClient.get')
NotificationApiClient().get_notifications_for_service('abcd1234', **arguments)
mock_get.assert_called_once_with(**expected_call)

View File

@@ -6,18 +6,53 @@ from app.main.views.index import index
from werkzeug.exceptions import Forbidden
# def test_user_has_permissions(app_,
# api_user_active,
# mock_get_user,
# mock_get_user_by_email,
# mock_login):
# with app_.test_request_context():
# with app_.test_client() as client:
# client.login(api_user_active)
# decorator = user_has_permissions('something')
# decorated_index = decorator(index)
# try:
# response = decorated_index()
# pytest.fail("Failed to throw a forbidden exception")
# except Forbidden:
# pass
def test_user_has_permissions_on_endpoint_fail(app_,
api_user_active,
mock_login,
mock_get_user_with_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
decorator = user_has_permissions('something')
decorated_index = decorator(index)
try:
response = decorated_index()
pytest.fail("Failed to throw a forbidden exception")
except Forbidden:
pass
def test_user_has_permissions_success(app_,
api_user_active,
mock_login,
mock_get_user_with_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
decorator = user_has_permissions('manage_users')
decorated_index = decorator(index)
response = decorated_index()
def test_user_has_permissions_or(app_,
api_user_active,
mock_login,
mock_get_user_with_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
decorator = user_has_permissions('something', 'manage_users', or_=True)
decorated_index = decorator(index)
response = decorated_index()
def test_user_has_permissions_multiple(app_,
api_user_active,
mock_login,
mock_get_user_with_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
decorator = user_has_permissions('manage_templates', 'manage_users')
decorated_index = decorator(index)
response = decorated_index()

View File

@@ -30,7 +30,8 @@ def test_should_show_page_for_one_job(app_,
mock_get_service,
mock_get_service_template,
job_data,
mock_get_job):
mock_get_job,
mock_get_notifications):
service_id = job_data['service']
job_id = job_data['id']
file_name = job_data['original_file_name']
@@ -41,4 +42,6 @@ def test_should_show_page_for_one_job(app_,
response = client.get(url_for('main.view_job', service_id=service_id, job_id=job_id))
assert response.status_code == 200
assert file_name in response.get_data(as_text=True)
content = response.get_data(as_text=True)
assert "Test Service: Your vehicle tax is about to expire" in content
assert file_name in content

View File

@@ -17,7 +17,8 @@ def test_choose_template(
mock_get_service,
mock_check_verify_code,
mock_get_service_templates,
mock_get_jobs
mock_get_jobs,
mock_has_permissions
):
with app_.test_request_context():
with app_.test_client() as client:
@@ -40,7 +41,8 @@ def test_upload_empty_csvfile_returns_to_upload_page(
mock_get_service,
mock_get_service_templates,
mock_check_verify_code,
mock_get_service_template
mock_get_service_template,
mock_has_permissions
):
with app_.test_request_context():
with app_.test_client() as client:
@@ -64,7 +66,8 @@ def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(
mock_login,
mock_get_service,
mock_get_service_template,
mock_s3_upload
mock_s3_upload,
mock_has_permissions
):
contents = 'phone number,name\n+44 123,test1\n+44 456,test2'
@@ -95,7 +98,8 @@ def test_upload_csvfile_removes_empty_lines_and_trailing_commas(
mock_login,
mock_get_service,
mock_get_service_template,
mock_s3_upload
mock_s3_upload,
mock_has_permissions
):
contents = 'phone number,name,,,\n++44 7700 900981,test1,,,\n+44 7700 900981,test2,,,\n ,,, \n ,,, \t \t \n'
@@ -127,7 +131,8 @@ def test_send_test_message_to_self(
mock_login,
mock_get_service,
mock_get_service_template,
mock_s3_upload
mock_s3_upload,
mock_has_permissions
):
expected_data = {'data': ['phone number', '+4412341234'], 'file_name': 'Test run'}
@@ -151,7 +156,8 @@ def test_send_test_message_to_self(
mock_login,
mock_get_service,
mock_get_service_email_template,
mock_s3_upload
mock_s3_upload,
mock_has_permissions
):
expected_data = {'data': ['email address', 'test@user.gov.uk'], 'file_name': 'Test run'}
@@ -174,7 +180,8 @@ def test_download_example_csv(
api_user_active,
mock_login,
mock_get_service,
mock_get_service_template
mock_get_service_template,
mock_has_permissions
):
with app_.test_request_context():
@@ -196,7 +203,8 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
mock_login,
mock_get_service,
mock_get_service_template,
mock_s3_upload
mock_s3_upload,
mock_has_permissions
):
contents = 'phone number\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
@@ -234,8 +242,10 @@ def test_create_job_should_call_api(
job_data,
mock_create_job,
mock_get_job,
mock_get_notifications,
mock_get_service,
mock_get_service_template
mock_get_service_template,
mock_has_permissions
):
service_id = service_one['id']

View File

@@ -6,7 +6,8 @@ def test_should_show_overview(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -25,7 +26,8 @@ def test_should_show_service_name(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -44,7 +46,8 @@ def test_should_redirect_after_change_service_name(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -64,7 +67,8 @@ def test_should_show_service_name_confirmation(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -85,7 +89,8 @@ def test_should_redirect_after_service_name_confirmation(app_,
mock_get_user,
mock_get_user_by_email,
mock_login,
mock_verify_password):
mock_verify_password,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -110,7 +115,8 @@ def test_should_show_request_to_go_live(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -130,7 +136,8 @@ def test_should_redirect_after_request_to_go_live(app_,
mock_update_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -151,7 +158,8 @@ def test_should_show_status_page(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -170,7 +178,8 @@ def test_should_show_redirect_after_status_change(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -190,7 +199,8 @@ def test_should_show_status_confirmation(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -211,7 +221,8 @@ def test_should_redirect_after_status_confirmation(app_,
mock_get_user,
mock_get_user_by_email,
mock_login,
mock_verify_password):
mock_verify_password,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -232,7 +243,8 @@ def test_should_show_delete_page(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -250,7 +262,8 @@ def test_should_show_redirect_after_deleting_service(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -269,7 +282,8 @@ def test_should_show_delete_confirmation(app_,
mock_get_service,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -289,7 +303,8 @@ def test_should_redirect_delete_confirmation(app_,
mock_get_user,
mock_get_user_by_email,
mock_login,
mock_verify_password):
mock_verify_password,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)

View File

@@ -9,7 +9,8 @@ def test_should_show_page_for_one_templates(app_,
mock_get_service_template,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -33,7 +34,8 @@ def test_should_redirect_when_saving_a_template(app_,
mock_update_service_template,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -65,7 +67,8 @@ def test_should_show_delete_template_page(app_,
mock_get_service_template,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)
@@ -91,7 +94,8 @@ def test_should_redirect_when_deleting_a_template(app_,
mock_delete_service_template,
mock_get_user,
mock_get_user_by_email,
mock_login):
mock_login,
mock_has_permissions):
with app_.test_request_context():
with app_.test_client() as client:
client.login(api_user_active)