mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Added units test to make sure the complaints work if the notification doesn't exist or if the notification_history doesn't exist
This commit is contained in:
@@ -4,8 +4,9 @@ import pytest
|
|||||||
from flask import json
|
from flask import json
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
|
|
||||||
|
from app import db
|
||||||
from app.dao.notifications_dao import get_notification_by_id
|
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 app.notifications.notifications_ses_callback import handle_complaint
|
||||||
|
|
||||||
from tests.app.conftest import sample_notification as create_sample_notification
|
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)
|
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):
|
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')
|
notification = create_notification(template=sample_email_template, reference='ref1')
|
||||||
msg = json.loads(ses_complaint_callback_with_missing_complaint_type()['Message'])
|
msg = json.loads(ses_complaint_callback_with_missing_complaint_type()['Message'])
|
||||||
|
|||||||
Reference in New Issue
Block a user