mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 01:41:05 -05:00
Added 2 tests to ensure provider stats not updated when in research nmode
This commit is contained in:
@@ -29,6 +29,7 @@ from sqlalchemy.exc import SQLAlchemyError
|
||||
from sqlalchemy.orm.exc import NoResultFound
|
||||
from app.celery.tasks import s3
|
||||
from app.celery import tasks
|
||||
from app.dao.provider_statistics_dao import get_provider_statistics
|
||||
from tests.app import load_example_csv
|
||||
from datetime import datetime, timedelta
|
||||
from freezegun import freeze_time
|
||||
@@ -331,7 +332,7 @@ def test_should_process_all_sms_job(sample_job,
|
||||
assert encryption.encrypt.call_args[0][0]['to'] == '+441234123120'
|
||||
assert encryption.encrypt.call_args[0][0]['template'] == str(sample_job_with_placeholdered_template.template.id)
|
||||
assert encryption.encrypt.call_args[0][0][
|
||||
'template_version'] == sample_job_with_placeholdered_template.template.version
|
||||
'template_version'] == sample_job_with_placeholdered_template.template.version
|
||||
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_with_placeholdered_template.id)
|
||||
@@ -1084,6 +1085,93 @@ def test_should_call_send_email_response_task_if_research_mode(
|
||||
assert persisted_notification.reference == str(reference)
|
||||
|
||||
|
||||
def test_should_call_send_not_update_provider_email_stats_if_research_mode(
|
||||
notify_db,
|
||||
sample_service,
|
||||
sample_email_template,
|
||||
ses_provider,
|
||||
mocker):
|
||||
notification = _notification_json(
|
||||
sample_email_template,
|
||||
to="john@smith.com"
|
||||
)
|
||||
|
||||
reference = uuid.uuid4()
|
||||
|
||||
mocker.patch('app.uuid.uuid4', return_value=reference)
|
||||
mocker.patch('app.encryption.decrypt', return_value=notification)
|
||||
mocker.patch('app.aws_ses_client.send_email')
|
||||
mocker.patch('app.aws_ses_client.get_name', return_value="ses")
|
||||
mocker.patch('app.celery.research_mode_tasks.send_email_response.apply_async')
|
||||
|
||||
sample_service.research_mode = True
|
||||
notify_db.session.add(sample_service)
|
||||
notify_db.session.commit()
|
||||
|
||||
assert not get_provider_statistics(
|
||||
sample_email_template.service,
|
||||
providers=[ses_provider.identifier]).first()
|
||||
|
||||
notification_id = uuid.uuid4()
|
||||
now = datetime.utcnow()
|
||||
send_email(
|
||||
sample_service.id,
|
||||
notification_id,
|
||||
"myservice@notify.com",
|
||||
"encrypted-in-reality",
|
||||
now.strftime(DATETIME_FORMAT)
|
||||
)
|
||||
assert not aws_ses_client.send_email.called
|
||||
send_email_response.apply_async.assert_called_once_with(
|
||||
('ses', str(reference), 'john@smith.com'), queue="research-mode"
|
||||
)
|
||||
|
||||
assert not get_provider_statistics(
|
||||
sample_email_template.service,
|
||||
providers=[ses_provider.identifier]).first()
|
||||
|
||||
|
||||
def test_should_call_send_sms_response_task_if_research_mode(
|
||||
notify_db,
|
||||
sample_service,
|
||||
sample_template,
|
||||
mmg_provider,
|
||||
mocker):
|
||||
notification = _notification_json(
|
||||
sample_template,
|
||||
to="+447234123123"
|
||||
)
|
||||
mocker.patch('app.encryption.decrypt', return_value=notification)
|
||||
mocker.patch('app.mmg_client.send_sms')
|
||||
mocker.patch('app.mmg_client.get_name', return_value="mmg")
|
||||
mocker.patch('app.celery.research_mode_tasks.send_sms_response.apply_async')
|
||||
|
||||
sample_service.research_mode = True
|
||||
notify_db.session.add(sample_service)
|
||||
notify_db.session.commit()
|
||||
|
||||
assert not get_provider_statistics(
|
||||
sample_template.service,
|
||||
providers=[mmg_provider.identifier]).first()
|
||||
|
||||
notification_id = uuid.uuid4()
|
||||
now = datetime.utcnow()
|
||||
send_sms(
|
||||
sample_service.id,
|
||||
notification_id,
|
||||
"encrypted-in-reality",
|
||||
now.strftime(DATETIME_FORMAT)
|
||||
)
|
||||
assert not mmg_client.send_sms.called
|
||||
send_sms_response.apply_async.assert_called_once_with(
|
||||
('mmg', str(notification_id), "+447234123123"), queue='research-mode'
|
||||
)
|
||||
|
||||
assert not get_provider_statistics(
|
||||
sample_template.service,
|
||||
providers=[mmg_provider.identifier]).first()
|
||||
|
||||
|
||||
def _notification_json(template, to, personalisation=None, job_id=None, row_number=None):
|
||||
notification = {
|
||||
"template": template.id,
|
||||
|
||||
Reference in New Issue
Block a user