mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-19 14:08:47 -04:00
Merge branch 'master' into rate-limit
Conflicts: app/celery/tasks.py tests/app/celery/test_tasks.py
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import uuid
|
||||
import pytest
|
||||
from flask import current_app
|
||||
from app.celery.tasks import (send_sms, send_sms_code, send_email_code, send_email, process_job, email_invited_user)
|
||||
from app.celery.tasks import (send_sms,
|
||||
send_sms_code,
|
||||
send_email_code,
|
||||
send_email,
|
||||
process_job,
|
||||
email_invited_user,
|
||||
email_reset_password)
|
||||
from app import (firetext_client, aws_ses_client, encryption, DATETIME_FORMAT)
|
||||
from app.clients.email.aws_ses import AwsSesClientException
|
||||
from app.clients.sms.firetext import FiretextClientException
|
||||
@@ -33,6 +39,8 @@ def test_should_process_sms_job(sample_job, mocker):
|
||||
process_job(sample_job.id)
|
||||
|
||||
s3.get_job_from_s3.assert_called_once_with(sample_job.bucket_name, sample_job.id)
|
||||
assert encryption.encrypt.call_args[0][0]['to'] == '+441234123123'
|
||||
assert encryption.encrypt.call_args[0][0]['personalisation'] == {}
|
||||
tasks.send_sms.apply_async.assert_called_once_with(
|
||||
(str(sample_job.service_id),
|
||||
"uuid",
|
||||
@@ -160,7 +168,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, sample_template, mocker):
|
||||
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")
|
||||
@@ -169,6 +177,8 @@ def test_should_process_email_job(sample_email_job, mocker):
|
||||
process_job(sample_email_job.id)
|
||||
|
||||
s3.get_job_from_s3.assert_called_once_with(sample_email_job.bucket_name, sample_email_job.id)
|
||||
assert encryption.encrypt.call_args[0][0]['to'] == 'test@test.com'
|
||||
assert encryption.encrypt.call_args[0][0]['personalisation'] == {}
|
||||
tasks.send_email.apply_async.assert_called_once_with(
|
||||
(str(sample_email_job.service_id),
|
||||
"uuid",
|
||||
@@ -182,17 +192,22 @@ def test_should_process_email_job(sample_email_job, mocker):
|
||||
assert job.status == 'finished'
|
||||
|
||||
|
||||
def test_should_process_all_sms_job(sample_job, mocker):
|
||||
def test_should_process_all_sms_job(sample_job, sample_job_with_placeholdered_template, mocker):
|
||||
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")
|
||||
mocker.patch('app.celery.tasks.create_uuid', return_value="uuid")
|
||||
|
||||
process_job(sample_job.id)
|
||||
process_job(sample_job_with_placeholdered_template.id)
|
||||
|
||||
s3.get_job_from_s3.assert_called_once_with(sample_job.bucket_name, sample_job.id)
|
||||
s3.get_job_from_s3.assert_called_once_with(
|
||||
sample_job_with_placeholdered_template.bucket_name,
|
||||
sample_job_with_placeholdered_template.id
|
||||
)
|
||||
assert encryption.encrypt.call_args[0][0]['to'] == '+441234123120'
|
||||
assert encryption.encrypt.call_args[0][0]['personalisation'] == {'name': 'chris'}
|
||||
tasks.send_sms.apply_async.call_count == 10
|
||||
job = jobs_dao.dao_get_job_by_id(sample_job.id)
|
||||
job = jobs_dao.dao_get_job_by_id(sample_job_with_placeholdered_template.id)
|
||||
assert job.status == 'finished'
|
||||
|
||||
|
||||
@@ -610,3 +625,22 @@ def test_email_invited_user_should_send_email(notify_api, mocker):
|
||||
invitation['to'],
|
||||
expected_subject,
|
||||
expected_content)
|
||||
|
||||
|
||||
def test_email_reset_password_should_send_email(notify_api, mocker):
|
||||
with notify_api.test_request_context():
|
||||
reset_password_message = {'to': 'someone@it.gov.uk',
|
||||
'name': 'Some One',
|
||||
'reset_password_url': 'bah'}
|
||||
|
||||
mocker.patch('app.aws_ses_client.send_email')
|
||||
mocker.patch('app.encryption.decrypt', return_value=reset_password_message)
|
||||
|
||||
encrypted_message = encryption.encrypt(reset_password_message)
|
||||
email_reset_password(encrypted_message)
|
||||
message = tasks.password_reset_message(reset_password_message['name'],
|
||||
reset_password_message['reset_password_url'])
|
||||
aws_ses_client.send_email(current_app.config['VERIFY_CODE_FROM_EMAIL_ADDRESS'],
|
||||
reset_password_message['to'],
|
||||
"Reset password for GOV.UK Notify",
|
||||
message)
|
||||
|
||||
Reference in New Issue
Block a user