Merge pull request #819 from alphagov/fix-auto-provider-switch-update-history

Fix: Update history when auto switching provider
This commit is contained in:
imdadahad
2017-02-09 10:50:01 +00:00
committed by GitHub
2 changed files with 29 additions and 9 deletions

View File

@@ -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):

View File

@@ -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