From e731dd96edd517df6255eb2049e4f8fd1e04fa32 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Wed, 22 May 2019 10:03:07 +0100 Subject: [PATCH] Added units test to make sure the complaints work if the notification doesn't exist or if the notification_history doesn't exist --- .../test_notifications_ses_callback.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tests/app/notifications/test_notifications_ses_callback.py b/tests/app/notifications/test_notifications_ses_callback.py index 80e773768..268c820f0 100644 --- a/tests/app/notifications/test_notifications_ses_callback.py +++ b/tests/app/notifications/test_notifications_ses_callback.py @@ -4,8 +4,9 @@ import pytest from flask import json from sqlalchemy.exc import SQLAlchemyError +from app import db from app.dao.notifications_dao import get_notification_by_id -from app.models import Complaint +from app.models import Complaint, NotificationHistory, Notification from app.notifications.notifications_ses_callback import handle_complaint from tests.app.conftest import sample_notification as create_sample_notification @@ -53,6 +54,26 @@ def test_handle_complaint_does_raise_exception_if_notification_not_found(notify_ handle_complaint(response) +def test_process_ses_results_in_complaint_if_notification_history_does_not_exist(sample_email_template): + notification = create_notification(template=sample_email_template, reference='ref1') + NotificationHistory.query.filter_by(id=notification.id).delete() + db.session.commit() + handle_complaint(json.loads(ses_complaint_callback()['Message'])) + complaints = Complaint.query.all() + assert len(complaints) == 1 + assert complaints[0].notification_id == notification.id + + +def test_process_ses_results_in_complaint_if_notification_does_not_exist(sample_email_template): + notification = create_notification(template=sample_email_template, reference='ref1') + Notification.query.filter_by(id=notification.id).delete() + db.session.commit() + handle_complaint(json.loads(ses_complaint_callback()['Message'])) + complaints = Complaint.query.all() + assert len(complaints) == 1 + assert complaints[0].notification_id == notification.id + + def test_process_ses_results_in_complaint_save_complaint_with_null_complaint_type(notify_api, sample_email_template): notification = create_notification(template=sample_email_template, reference='ref1') msg = json.loads(ses_complaint_callback_with_missing_complaint_type()['Message'])