mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 10:21:14 -05:00
Merge branch 'master' into integrate_MMG
Conflicts: app/notifications/rest.py
This commit is contained in:
@@ -49,16 +49,16 @@ def firetext_error():
|
||||
mmg_error = {'Error': '40', 'Description': 'error'}
|
||||
|
||||
|
||||
def test_should_call_delete_successful_notifications_in_task(notify_api, mocker):
|
||||
mocker.patch('app.celery.tasks.delete_successful_notifications_created_more_than_a_day_ago')
|
||||
def test_should_call_delete_notifications_more_than_week_in_task(notify_api, mocker):
|
||||
mocker.patch('app.celery.tasks.delete_notifications_created_more_than_a_week_ago')
|
||||
delete_successful_notifications()
|
||||
assert tasks.delete_successful_notifications_created_more_than_a_day_ago.call_count == 1
|
||||
assert tasks.delete_notifications_created_more_than_a_week_ago.call_count == 1
|
||||
|
||||
|
||||
def test_should_call_delete_failed_notifications_in_task(notify_api, mocker):
|
||||
mocker.patch('app.celery.tasks.delete_failed_notifications_created_more_than_a_week_ago')
|
||||
def test_should_call_delete_notifications_more_than_week_in_task(notify_api, mocker):
|
||||
mocker.patch('app.celery.tasks.delete_notifications_created_more_than_a_week_ago')
|
||||
delete_failed_notifications()
|
||||
assert tasks.delete_failed_notifications_created_more_than_a_week_ago.call_count == 1
|
||||
assert tasks.delete_notifications_created_more_than_a_week_ago.call_count == 1
|
||||
|
||||
|
||||
def test_should_call_delete_codes_on_delete_verify_codes_task(notify_api, mocker):
|
||||
@@ -74,7 +74,7 @@ def test_should_call_delete_invotations_on_delete_invitations_task(notify_api, m
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
def test_should_process_sms_job(sample_job, mocker):
|
||||
def test_should_process_sms_job(sample_job, mocker, mock_celery_remove_job):
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=load_example_csv('sms'))
|
||||
mocker.patch('app.celery.tasks.send_sms.apply_async')
|
||||
mocker.patch('app.encryption.encrypt', return_value="something_encrypted")
|
||||
@@ -97,7 +97,10 @@ def test_should_process_sms_job(sample_job, mocker):
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
def test_should_not_process_sms_job_if_would_exceed_send_limits(notify_db, notify_db_session, mocker):
|
||||
def test_should_not_process_sms_job_if_would_exceed_send_limits(notify_db,
|
||||
notify_db_session,
|
||||
mocker,
|
||||
mock_celery_remove_job):
|
||||
service = sample_service(notify_db, notify_db_session, limit=9)
|
||||
job = sample_job(notify_db, notify_db_session, service=service, notification_count=10)
|
||||
|
||||
@@ -112,9 +115,13 @@ def test_should_not_process_sms_job_if_would_exceed_send_limits(notify_db, notif
|
||||
job = jobs_dao.dao_get_job_by_id(job.id)
|
||||
assert job.status == 'sending limits exceeded'
|
||||
tasks.send_sms.apply_async.assert_not_called()
|
||||
mock_celery_remove_job.assert_not_called()
|
||||
|
||||
|
||||
def test_should_not_process_sms_job_if_would_exceed_send_limits_inc_today(notify_db, notify_db_session, mocker):
|
||||
def test_should_not_process_sms_job_if_would_exceed_send_limits_inc_today(notify_db,
|
||||
notify_db_session,
|
||||
mocker,
|
||||
mock_celery_remove_job):
|
||||
service = sample_service(notify_db, notify_db_session, limit=1)
|
||||
job = sample_job(notify_db, notify_db_session, service=service)
|
||||
|
||||
@@ -131,6 +138,7 @@ def test_should_not_process_sms_job_if_would_exceed_send_limits_inc_today(notify
|
||||
assert job.status == 'sending limits exceeded'
|
||||
s3.get_job_from_s3.assert_not_called()
|
||||
tasks.send_sms.apply_async.assert_not_called()
|
||||
mock_celery_remove_job.assert_not_called()
|
||||
|
||||
|
||||
def test_should_not_process_email_job_if_would_exceed_send_limits_inc_today(notify_db, notify_db_session, mocker):
|
||||
@@ -173,7 +181,10 @@ def test_should_not_process_email_job_if_would_exceed_send_limits(notify_db, not
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
def test_should_process_sms_job_if_exactly_on_send_limits(notify_db, notify_db_session, mocker):
|
||||
def test_should_process_sms_job_if_exactly_on_send_limits(notify_db,
|
||||
notify_db_session,
|
||||
mocker,
|
||||
mock_celery_remove_job):
|
||||
service = sample_service(notify_db, notify_db_session, limit=10)
|
||||
template = sample_email_template(notify_db, notify_db_session, service=service)
|
||||
job = sample_job(notify_db, notify_db_session, service=service, template=template, notification_count=10)
|
||||
@@ -197,9 +208,10 @@ def test_should_process_sms_job_if_exactly_on_send_limits(notify_db, notify_db_s
|
||||
"2016-01-01T11:09:00.061258"),
|
||||
queue="bulk-email"
|
||||
)
|
||||
mock_celery_remove_job.assert_called_once_with((str(job.id),), queue="remove-job")
|
||||
|
||||
|
||||
def test_should_not_create_send_task_for_empty_file(sample_job, mocker):
|
||||
def test_should_not_create_send_task_for_empty_file(sample_job, mocker, mock_celery_remove_job):
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=load_example_csv('empty'))
|
||||
mocker.patch('app.celery.tasks.send_sms.apply_async')
|
||||
|
||||
@@ -212,7 +224,7 @@ def test_should_not_create_send_task_for_empty_file(sample_job, mocker):
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
def test_should_process_email_job(sample_email_job, mocker):
|
||||
def test_should_process_email_job(sample_email_job, mocker, mock_celery_remove_job):
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=load_example_csv('email'))
|
||||
mocker.patch('app.celery.tasks.send_email.apply_async')
|
||||
mocker.patch('app.encryption.encrypt', return_value="something_encrypted")
|
||||
@@ -234,9 +246,13 @@ def test_should_process_email_job(sample_email_job, mocker):
|
||||
)
|
||||
job = jobs_dao.dao_get_job_by_id(sample_email_job.id)
|
||||
assert job.status == 'finished'
|
||||
mock_celery_remove_job.assert_called_once_with((str(job.id),), queue="remove-job")
|
||||
|
||||
|
||||
def test_should_process_all_sms_job(sample_job, sample_job_with_placeholdered_template, mocker):
|
||||
def test_should_process_all_sms_job(sample_job,
|
||||
sample_job_with_placeholdered_template,
|
||||
mocker,
|
||||
mock_celery_remove_job):
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=load_example_csv('multiple_sms'))
|
||||
mocker.patch('app.celery.tasks.send_sms.apply_async')
|
||||
mocker.patch('app.encryption.encrypt', return_value="something_encrypted")
|
||||
@@ -403,6 +419,32 @@ def test_should_send_email_if_restricted_service_and_valid_email(notify_db, noti
|
||||
)
|
||||
|
||||
|
||||
def test_should_not_send_email_if_restricted_service_and_invalid_email_address(notify_db, notify_db_session, mocker):
|
||||
user = sample_user(notify_db, notify_db_session)
|
||||
service = sample_service(notify_db, notify_db_session, user=user, restricted=True)
|
||||
template = sample_template(
|
||||
notify_db, notify_db_session, service=service, template_type='email', subject_line='Hello'
|
||||
)
|
||||
|
||||
notification = {
|
||||
"template": template.id,
|
||||
"to": "test@example.com"
|
||||
}
|
||||
mocker.patch('app.encryption.decrypt', return_value=notification)
|
||||
mocker.patch('app.aws_ses_client.send_email')
|
||||
|
||||
notification_id = uuid.uuid4()
|
||||
now = datetime.utcnow()
|
||||
send_sms(
|
||||
service.id,
|
||||
notification_id,
|
||||
"encrypted-in-reality",
|
||||
now.strftime(DATETIME_FORMAT)
|
||||
)
|
||||
|
||||
aws_ses_client.send_email.assert_not_called()
|
||||
|
||||
|
||||
def test_should_send_template_to_correct_sms_provider_and_persist_with_job_id(sample_job, mocker):
|
||||
notification = {
|
||||
"template": sample_job.template.id,
|
||||
|
||||
Reference in New Issue
Block a user