mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-05 02:41:14 -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 sqlalchemy.orm.exc import NoResultFound
|
||||||
from app.celery.tasks import s3
|
from app.celery.tasks import s3
|
||||||
from app.celery import tasks
|
from app.celery import tasks
|
||||||
|
from app.dao.provider_statistics_dao import get_provider_statistics
|
||||||
from tests.app import load_example_csv
|
from tests.app import load_example_csv
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from freezegun import freeze_time
|
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]['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'] == str(sample_job_with_placeholdered_template.template.id)
|
||||||
assert encryption.encrypt.call_args[0][0][
|
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'}
|
assert encryption.encrypt.call_args[0][0]['personalisation'] == {'name': 'chris'}
|
||||||
tasks.send_sms.apply_async.call_count == 10
|
tasks.send_sms.apply_async.call_count == 10
|
||||||
job = jobs_dao.dao_get_job_by_id(sample_job_with_placeholdered_template.id)
|
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)
|
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):
|
def _notification_json(template, to, personalisation=None, job_id=None, row_number=None):
|
||||||
notification = {
|
notification = {
|
||||||
"template": template.id,
|
"template": template.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user