mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-11 10:28:55 -04:00
Update Notification history if there is a mismatch in the number of notifications to be updated and the number actually updated.
This commit is contained in:
@@ -526,7 +526,7 @@ def dao_update_notifications_by_reference(references, update_dict):
|
|||||||
)
|
)
|
||||||
|
|
||||||
updated_history_count = 0
|
updated_history_count = 0
|
||||||
if updated_count == 0:
|
if updated_count != len(references):
|
||||||
updated_history_count = NotificationHistory.query.filter(
|
updated_history_count = NotificationHistory.query.filter(
|
||||||
NotificationHistory.reference.in_(references)
|
NotificationHistory.reference.in_(references)
|
||||||
).update(
|
).update(
|
||||||
|
|||||||
@@ -1523,6 +1523,25 @@ def test_dao_update_notifications_by_reference_set_returned_letter_status(sample
|
|||||||
assert Notification.query.get(notification.id).status == 'returned-letter'
|
assert Notification.query.get(notification.id).status == 'returned-letter'
|
||||||
|
|
||||||
|
|
||||||
|
def test_dao_update_notifications_by_reference_updates_history_when_one_of_two_notifications_exists(
|
||||||
|
sample_letter_template
|
||||||
|
):
|
||||||
|
notification1 = create_notification(template=sample_letter_template, reference='ref1')
|
||||||
|
notification2 = create_notification(template=sample_letter_template, reference='ref2')
|
||||||
|
|
||||||
|
Notification.query.filter_by(id=notification1.id).delete()
|
||||||
|
NotificationHistory.query.filter_by(id=notification2.id).delete()
|
||||||
|
updated_count, updated_history_count = dao_update_notifications_by_reference(
|
||||||
|
references=['ref1', 'ref2'],
|
||||||
|
update_dict={"status": "returned-letter"}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert updated_count == 1
|
||||||
|
assert updated_history_count == 1
|
||||||
|
assert Notification.query.get(notification2.id).status == 'returned-letter'
|
||||||
|
assert NotificationHistory.query.get(notification1.id).status == 'returned-letter'
|
||||||
|
|
||||||
|
|
||||||
def test_dao_get_notification_by_reference_with_one_match_returns_notification(sample_letter_template, notify_db):
|
def test_dao_get_notification_by_reference_with_one_match_returns_notification(sample_letter_template, notify_db):
|
||||||
create_notification(template=sample_letter_template, reference='REF1')
|
create_notification(template=sample_letter_template, reference='REF1')
|
||||||
notification = dao_get_notification_by_reference('REF1')
|
notification = dao_get_notification_by_reference('REF1')
|
||||||
|
|||||||
Reference in New Issue
Block a user