mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-24 01:11:38 -05:00
Merge pull request #819 from alphagov/fix-auto-provider-switch-update-history
Fix: Update history when auto switching provider
This commit is contained in:
@@ -59,7 +59,8 @@ def dao_switch_sms_provider_to_provider_with_identifier(identifier):
|
||||
|
||||
if not provider_is_already_primary_or_inactive(current_provider, new_provider, identifier):
|
||||
update_provider_priorities(current_provider, new_provider)
|
||||
db.session.add_all([current_provider, new_provider])
|
||||
dao_update_provider_details(current_provider)
|
||||
dao_update_provider_details(new_provider)
|
||||
|
||||
|
||||
def get_provider_details_by_notification_type(notification_type):
|
||||
|
||||
@@ -3,6 +3,7 @@ import pytest
|
||||
from datetime import datetime
|
||||
|
||||
from freezegun import freeze_time
|
||||
from sqlalchemy import desc
|
||||
|
||||
from app.models import ProviderDetails, ProviderDetailsHistory
|
||||
from app import clients
|
||||
@@ -122,8 +123,7 @@ def test_get_alternative_sms_provider_returns_expected_provider(notify_db, provi
|
||||
|
||||
def test_switch_sms_provider_to_current_provider_does_not_switch(
|
||||
restore_provider_details,
|
||||
current_sms_provider,
|
||||
mocker
|
||||
current_sms_provider
|
||||
):
|
||||
dao_switch_sms_provider_to_provider_with_identifier(current_sms_provider.identifier)
|
||||
new_provider = get_current_provider('sms')
|
||||
@@ -134,8 +134,7 @@ def test_switch_sms_provider_to_current_provider_does_not_switch(
|
||||
|
||||
def test_switch_sms_provider_to_inactive_provider_does_not_switch(
|
||||
restore_provider_details,
|
||||
current_sms_provider,
|
||||
mocker
|
||||
current_sms_provider
|
||||
):
|
||||
alternative_sms_provider = get_alternative_sms_provider(current_sms_provider.identifier)
|
||||
alternative_sms_provider.active = False
|
||||
@@ -150,8 +149,7 @@ def test_switch_sms_provider_to_inactive_provider_does_not_switch(
|
||||
|
||||
def test_toggle_sms_provider_switches_provider(
|
||||
restore_provider_details,
|
||||
current_sms_provider,
|
||||
mocker
|
||||
current_sms_provider
|
||||
):
|
||||
dao_toggle_sms_provider(current_sms_provider.identifier)
|
||||
new_provider = get_current_provider('sms')
|
||||
@@ -161,8 +159,7 @@ def test_toggle_sms_provider_switches_provider(
|
||||
|
||||
def test_toggle_sms_provider_switches_when_provider_priorities_are_equal(
|
||||
restore_provider_details,
|
||||
current_sms_provider,
|
||||
mocker
|
||||
current_sms_provider
|
||||
):
|
||||
new_provider = get_alternative_sms_provider(current_sms_provider.identifier)
|
||||
current_sms_provider.priority = new_provider.priority
|
||||
@@ -172,3 +169,25 @@ def test_toggle_sms_provider_switches_when_provider_priorities_are_equal(
|
||||
|
||||
assert new_provider.identifier != current_sms_provider.identifier
|
||||
assert new_provider.priority < current_sms_provider.priority
|
||||
|
||||
|
||||
def test_toggle_sms_provider_updates_provider_history(
|
||||
restore_provider_details,
|
||||
current_sms_provider
|
||||
):
|
||||
provider_history_rows = ProviderDetailsHistory.query.filter(
|
||||
ProviderDetailsHistory.id == current_sms_provider.id
|
||||
).order_by(
|
||||
desc(ProviderDetailsHistory.version)
|
||||
).all()
|
||||
|
||||
dao_toggle_sms_provider(current_sms_provider.identifier)
|
||||
|
||||
updated_provider_history_rows = ProviderDetailsHistory.query.filter(
|
||||
ProviderDetailsHistory.id == current_sms_provider.id
|
||||
).order_by(
|
||||
desc(ProviderDetailsHistory.version)
|
||||
).all()
|
||||
|
||||
assert len(updated_provider_history_rows) - len(provider_history_rows) == 1
|
||||
assert updated_provider_history_rows[0].version - provider_history_rows[0].version == 1
|
||||
|
||||
Reference in New Issue
Block a user