mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-17 04:59:37 -04:00
Merge branch 'master' into revalidate-csv-file
This commit is contained in:
41
tests/app/main/notify_client/test_notification_client.py
Normal file
41
tests/app/main/notify_client/test_notification_client.py
Normal 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)
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user