Fix syncing issue with Notification statuses:

The timeout_notifications job runs daily and does not correctly
update both the status fields to keep them in sync.
This commit is contained in:
Imdad Ahad
2017-07-04 16:40:13 +01:00
committed by venusbb
parent b94a463911
commit f0ffbad77d
2 changed files with 10 additions and 1 deletions

View File

@@ -410,7 +410,10 @@ def _timeout_notifications(current_statuses, new_status, timeout_start, updated_
table.status.in_(current_statuses),
table.notification_type != LETTER_TYPE
)
last_update_count = q.update({'status': new_status, 'updated_at': updated_at}, synchronize_session=False)
last_update_count = q.update(
{'_status_enum': new_status, '_status_fkey': new_status, 'updated_at': updated_at},
synchronize_session=False
)
return last_update_count

View File

@@ -155,9 +155,15 @@ def test_update_status_of_notifications_after_timeout(notify_api, sample_templat
created_at=datetime.utcnow() - timedelta(
seconds=current_app.config.get('SENDING_NOTIFICATIONS_TIMEOUT_PERIOD') + 10))
timeout_notifications()
assert not1.status == 'temporary-failure'
assert not1._status_fkey == 'temporary-failure'
assert not2.status == 'technical-failure'
assert not2._status_fkey == 'technical-failure'
assert not3.status == 'temporary-failure'
assert not3._status_fkey == 'temporary-failure'
def test_not_update_status_of_notification_before_timeout(notify_api, sample_template):