mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-23 07:46:06 -04:00
fix more
This commit is contained in:
@@ -531,7 +531,12 @@ def test_should_not_save_sms_if_restricted_service_and_invalid_number(
|
|||||||
encryption.encrypt(notification),
|
encryption.encrypt(notification),
|
||||||
)
|
)
|
||||||
assert provider_tasks.deliver_sms.apply_async.called is False
|
assert provider_tasks.deliver_sms.apply_async.called is False
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
|
|
||||||
|
|
||||||
|
def _get_notification_query_count():
|
||||||
|
stmt = select(func.count()).select_from(Notification)
|
||||||
|
return db.session.execute(stmt).scalar() or 0
|
||||||
|
|
||||||
|
|
||||||
def test_should_not_save_email_if_restricted_service_and_invalid_email_address(
|
def test_should_not_save_email_if_restricted_service_and_invalid_email_address(
|
||||||
@@ -553,7 +558,7 @@ def test_should_not_save_email_if_restricted_service_and_invalid_email_address(
|
|||||||
encryption.encrypt(notification),
|
encryption.encrypt(notification),
|
||||||
)
|
)
|
||||||
|
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
|
|
||||||
|
|
||||||
def test_should_save_sms_template_to_and_persist_with_job_id(sample_job, mocker):
|
def test_should_save_sms_template_to_and_persist_with_job_id(sample_job, mocker):
|
||||||
@@ -593,7 +598,7 @@ def test_should_save_sms_template_to_and_persist_with_job_id(sample_job, mocker)
|
|||||||
def test_should_not_save_sms_if_team_key_and_recipient_not_in_team(
|
def test_should_not_save_sms_if_team_key_and_recipient_not_in_team(
|
||||||
notify_db_session, mocker
|
notify_db_session, mocker
|
||||||
):
|
):
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
user = create_user(mobile_number="2028675309")
|
user = create_user(mobile_number="2028675309")
|
||||||
service = create_service(user=user, restricted=True)
|
service = create_service(user=user, restricted=True)
|
||||||
template = create_template(service=service)
|
template = create_template(service=service)
|
||||||
@@ -611,7 +616,7 @@ def test_should_not_save_sms_if_team_key_and_recipient_not_in_team(
|
|||||||
encryption.encrypt(notification),
|
encryption.encrypt(notification),
|
||||||
)
|
)
|
||||||
assert provider_tasks.deliver_sms.apply_async.called is False
|
assert provider_tasks.deliver_sms.apply_async.called is False
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
|
|
||||||
|
|
||||||
def test_should_use_email_template_and_persist(
|
def test_should_use_email_template_and_persist(
|
||||||
@@ -836,7 +841,7 @@ def test_save_sms_should_go_to_retry_queue_if_database_errors(sample_template, m
|
|||||||
assert provider_tasks.deliver_sms.apply_async.called is False
|
assert provider_tasks.deliver_sms.apply_async.called is False
|
||||||
tasks.save_sms.retry.assert_called_with(exc=expected_exception, queue="retry-tasks")
|
tasks.save_sms.retry.assert_called_with(exc=expected_exception, queue="retry-tasks")
|
||||||
|
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
|
|
||||||
|
|
||||||
def test_save_email_should_go_to_retry_queue_if_database_errors(
|
def test_save_email_should_go_to_retry_queue_if_database_errors(
|
||||||
@@ -866,7 +871,7 @@ def test_save_email_should_go_to_retry_queue_if_database_errors(
|
|||||||
exc=expected_exception, queue="retry-tasks"
|
exc=expected_exception, queue="retry-tasks"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert Notification.query.count() == 0
|
assert _get_notification_query_count() == 0
|
||||||
|
|
||||||
|
|
||||||
def test_save_email_does_not_send_duplicate_and_does_not_put_in_retry_queue(
|
def test_save_email_does_not_send_duplicate_and_does_not_put_in_retry_queue(
|
||||||
@@ -888,7 +893,7 @@ def test_save_email_does_not_send_duplicate_and_does_not_put_in_retry_queue(
|
|||||||
notification_id,
|
notification_id,
|
||||||
encryption.encrypt(json),
|
encryption.encrypt(json),
|
||||||
)
|
)
|
||||||
assert Notification.query.count() == 1
|
assert _get_notification_query_count() == 1
|
||||||
assert not deliver_email.called
|
assert not deliver_email.called
|
||||||
assert not retry.called
|
assert not retry.called
|
||||||
|
|
||||||
@@ -912,7 +917,7 @@ def test_save_sms_does_not_send_duplicate_and_does_not_put_in_retry_queue(
|
|||||||
notification_id,
|
notification_id,
|
||||||
encryption.encrypt(json),
|
encryption.encrypt(json),
|
||||||
)
|
)
|
||||||
assert Notification.query.count() == 1
|
assert _get_notification_query_count() == 1
|
||||||
assert not deliver_sms.called
|
assert not deliver_sms.called
|
||||||
assert not retry.called
|
assert not retry.called
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,13 @@ from app.utils import utc_now
|
|||||||
from tests.app.db import create_invited_user
|
from tests.app.db import create_invited_user
|
||||||
|
|
||||||
|
|
||||||
|
def _get_invited_user_count():
|
||||||
|
stmt = select(func.count()).select_from(InvitedUser)
|
||||||
|
return db.session.execute(stmt).scalar() or 0
|
||||||
|
|
||||||
|
|
||||||
def test_create_invited_user(notify_db_session, sample_service):
|
def test_create_invited_user(notify_db_session, sample_service):
|
||||||
assert InvitedUser.query.count() == 0
|
assert _get_invited_user_count() == 0
|
||||||
email_address = "invited_user@service.gov.uk"
|
email_address = "invited_user@service.gov.uk"
|
||||||
invite_from = sample_service.users[0]
|
invite_from = sample_service.users[0]
|
||||||
|
|
||||||
@@ -35,7 +40,7 @@ def test_create_invited_user(notify_db_session, sample_service):
|
|||||||
invited_user = InvitedUser(**data)
|
invited_user = InvitedUser(**data)
|
||||||
save_invited_user(invited_user)
|
save_invited_user(invited_user)
|
||||||
|
|
||||||
assert InvitedUser.query.count() == 1
|
assert _get_invited_user_count() == 1
|
||||||
assert invited_user.email_address == email_address
|
assert invited_user.email_address == email_address
|
||||||
assert invited_user.from_user == invite_from
|
assert invited_user.from_user == invite_from
|
||||||
permissions = invited_user.get_permissions()
|
permissions = invited_user.get_permissions()
|
||||||
@@ -48,7 +53,7 @@ def test_create_invited_user(notify_db_session, sample_service):
|
|||||||
def test_create_invited_user_sets_default_folder_permissions_of_empty_list(
|
def test_create_invited_user_sets_default_folder_permissions_of_empty_list(
|
||||||
sample_service,
|
sample_service,
|
||||||
):
|
):
|
||||||
assert InvitedUser.query.count() == 0
|
assert _get_invited_user_count() == 0
|
||||||
invite_from = sample_service.users[0]
|
invite_from = sample_service.users[0]
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
@@ -61,7 +66,7 @@ def test_create_invited_user_sets_default_folder_permissions_of_empty_list(
|
|||||||
invited_user = InvitedUser(**data)
|
invited_user = InvitedUser(**data)
|
||||||
save_invited_user(invited_user)
|
save_invited_user(invited_user)
|
||||||
|
|
||||||
assert InvitedUser.query.count() == 1
|
assert _get_invited_user_count() == 1
|
||||||
assert invited_user.folder_permissions == []
|
assert invited_user.folder_permissions == []
|
||||||
|
|
||||||
|
|
||||||
@@ -109,12 +114,12 @@ def test_get_invited_users_for_service_that_has_no_invites(
|
|||||||
def test_save_invited_user_sets_status_to_cancelled(
|
def test_save_invited_user_sets_status_to_cancelled(
|
||||||
notify_db_session, sample_invited_user
|
notify_db_session, sample_invited_user
|
||||||
):
|
):
|
||||||
assert InvitedUser.query.count() == 1
|
assert _get_invited_user_count() == 1
|
||||||
saved = InvitedUser.query.get(sample_invited_user.id)
|
saved = InvitedUser.query.get(sample_invited_user.id)
|
||||||
assert saved.status == InvitedUserStatus.PENDING
|
assert saved.status == InvitedUserStatus.PENDING
|
||||||
saved.status = InvitedUserStatus.CANCELLED
|
saved.status = InvitedUserStatus.CANCELLED
|
||||||
save_invited_user(saved)
|
save_invited_user(saved)
|
||||||
assert InvitedUser.query.count() == 1
|
assert _get_invited_user_count() == 1
|
||||||
cancelled_invited_user = InvitedUser.query.get(sample_invited_user.id)
|
cancelled_invited_user = InvitedUser.query.get(sample_invited_user.id)
|
||||||
assert cancelled_invited_user.status == InvitedUserStatus.CANCELLED
|
assert cancelled_invited_user.status == InvitedUserStatus.CANCELLED
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
from sqlalchemy import func, select
|
||||||
|
|
||||||
|
from app import db
|
||||||
from app.dao.api_key_dao import expire_api_key
|
from app.dao.api_key_dao import expire_api_key
|
||||||
from app.enums import KeyType
|
from app.enums import KeyType
|
||||||
from app.models import ApiKey
|
from app.models import ApiKey
|
||||||
@@ -60,10 +62,15 @@ def test_create_api_key_without_key_type_rejects(client, sample_service):
|
|||||||
assert json_resp["message"] == {"key_type": ["Missing data for required field."]}
|
assert json_resp["message"] == {"key_type": ["Missing data for required field."]}
|
||||||
|
|
||||||
|
|
||||||
|
def _get_api_key_count():
|
||||||
|
stmt = select(func.count()).select_from(ApiKey)
|
||||||
|
return db.session.execute(stmt).scalar() or 0
|
||||||
|
|
||||||
|
|
||||||
def test_revoke_should_expire_api_key_for_service(notify_api, sample_api_key):
|
def test_revoke_should_expire_api_key_for_service(notify_api, sample_api_key):
|
||||||
with notify_api.test_request_context():
|
with notify_api.test_request_context():
|
||||||
with notify_api.test_client() as client:
|
with notify_api.test_client() as client:
|
||||||
assert ApiKey.query.count() == 1
|
assert _get_api_key_count() == 1
|
||||||
auth_header = create_admin_authorization_header()
|
auth_header = create_admin_authorization_header()
|
||||||
response = client.post(
|
response = client.post(
|
||||||
url_for(
|
url_for(
|
||||||
@@ -83,7 +90,7 @@ def test_api_key_should_create_multiple_new_api_key_for_service(
|
|||||||
):
|
):
|
||||||
with notify_api.test_request_context():
|
with notify_api.test_request_context():
|
||||||
with notify_api.test_client() as client:
|
with notify_api.test_client() as client:
|
||||||
assert ApiKey.query.count() == 0
|
assert _get_api_key_count() == 0
|
||||||
data = {
|
data = {
|
||||||
"name": "some secret name",
|
"name": "some secret name",
|
||||||
"created_by": str(sample_service.created_by.id),
|
"created_by": str(sample_service.created_by.id),
|
||||||
@@ -96,7 +103,7 @@ def test_api_key_should_create_multiple_new_api_key_for_service(
|
|||||||
headers=[("Content-Type", "application/json"), auth_header],
|
headers=[("Content-Type", "application/json"), auth_header],
|
||||||
)
|
)
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
assert ApiKey.query.count() == 1
|
assert _get_api_key_count() == 1
|
||||||
|
|
||||||
data["name"] = "another secret name"
|
data["name"] = "another secret name"
|
||||||
auth_header = create_admin_authorization_header()
|
auth_header = create_admin_authorization_header()
|
||||||
@@ -109,7 +116,7 @@ def test_api_key_should_create_multiple_new_api_key_for_service(
|
|||||||
assert json.loads(response.get_data(as_text=True)) != json.loads(
|
assert json.loads(response.get_data(as_text=True)) != json.loads(
|
||||||
response2.get_data(as_text=True)
|
response2.get_data(as_text=True)
|
||||||
)
|
)
|
||||||
assert ApiKey.query.count() == 2
|
assert _get_api_key_count() == 2
|
||||||
|
|
||||||
|
|
||||||
def test_get_api_keys_should_return_all_keys_for_service(notify_api, sample_api_key):
|
def test_get_api_keys_should_return_all_keys_for_service(notify_api, sample_api_key):
|
||||||
@@ -130,7 +137,7 @@ def test_get_api_keys_should_return_all_keys_for_service(notify_api, sample_api_
|
|||||||
service_id=one_to_expire.service_id, api_key_id=one_to_expire.id
|
service_id=one_to_expire.service_id, api_key_id=one_to_expire.id
|
||||||
)
|
)
|
||||||
|
|
||||||
assert ApiKey.query.count() == 4
|
assert _get_api_key_count() == 4
|
||||||
|
|
||||||
auth_header = create_admin_authorization_header()
|
auth_header = create_admin_authorization_header()
|
||||||
response = client.get(
|
response = client.get(
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from datetime import datetime, timedelta
|
|||||||
import pytest
|
import pytest
|
||||||
from flask import current_app, url_for
|
from flask import current_app, url_for
|
||||||
from freezegun import freeze_time
|
from freezegun import freeze_time
|
||||||
|
from sqlalchemy import func, select
|
||||||
|
|
||||||
import app.celery.tasks
|
import app.celery.tasks
|
||||||
from app import db
|
from app import db
|
||||||
@@ -295,7 +296,7 @@ def test_send_sms_code_returns_204_when_too_many_codes_already_created(
|
|||||||
)
|
)
|
||||||
db.session.add(verify_code)
|
db.session.add(verify_code)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
assert VerifyCode.query.count() == 5
|
assert _get_verify_code_count() == 5
|
||||||
auth_header = create_admin_authorization_header()
|
auth_header = create_admin_authorization_header()
|
||||||
resp = client.post(
|
resp = client.post(
|
||||||
url_for(
|
url_for(
|
||||||
@@ -307,7 +308,12 @@ def test_send_sms_code_returns_204_when_too_many_codes_already_created(
|
|||||||
headers=[("Content-Type", "application/json"), auth_header],
|
headers=[("Content-Type", "application/json"), auth_header],
|
||||||
)
|
)
|
||||||
assert resp.status_code == 204
|
assert resp.status_code == 204
|
||||||
assert VerifyCode.query.count() == 5
|
assert _get_verify_code_count() == 5
|
||||||
|
|
||||||
|
|
||||||
|
def _get_verify_code_count():
|
||||||
|
stmt = select(func.count()).select_from(VerifyCode)
|
||||||
|
return db.session.execute(stmt).scalar() or 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -341,7 +347,7 @@ def test_send_new_user_email_verification(
|
|||||||
notify_service = email_verification_template.service
|
notify_service = email_verification_template.service
|
||||||
assert resp.status_code == 204
|
assert resp.status_code == 204
|
||||||
notification = Notification.query.first()
|
notification = Notification.query.first()
|
||||||
assert VerifyCode.query.count() == 0
|
assert _get_verify_code_count() == 0
|
||||||
mocked.assert_called_once_with(
|
mocked.assert_called_once_with(
|
||||||
([str(notification.id)]), queue="notify-internal-tasks"
|
([str(notification.id)]), queue="notify-internal-tasks"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user