Merge pull request #3488 from alphagov/fix-provider-adjustment-bug-181574489

Fix SMS priority adjustment if only 1 provider
This commit is contained in:
Ben Thorner
2022-03-22 16:21:53 +00:00
committed by GitHub
2 changed files with 17 additions and 2 deletions

View File

@@ -84,7 +84,8 @@ def dao_reduce_sms_provider_priority(identifier, *, time_threshold):
amount_to_reduce_by = 10
providers_list = _get_sms_providers_for_update(time_threshold)
if not providers_list:
if len(providers_list) < 2:
current_app.logger.info("Not adjusting providers, number of active providers is less than 2.")
return
providers = {provider.identifier: provider for provider in providers_list}

View File

@@ -234,7 +234,7 @@ def test_reduce_sms_provider_priority_does_nothing_if_providers_have_recently_ch
mocker,
restore_provider_details,
):
mock_get_providers = mocker.patch('app.dao.provider_details_dao._get_sms_providers_for_update', return_value=None)
mock_get_providers = mocker.patch('app.dao.provider_details_dao._get_sms_providers_for_update', return_value=[])
mock_adjust = mocker.patch('app.dao.provider_details_dao._adjust_provider_priority')
dao_reduce_sms_provider_priority('firetext', time_threshold=timedelta(minutes=5))
@@ -243,6 +243,20 @@ def test_reduce_sms_provider_priority_does_nothing_if_providers_have_recently_ch
assert mock_adjust.called is False
def test_reduce_sms_provider_priority_does_nothing_if_there_is_only_one_active_provider(
mocker,
restore_provider_details,
):
firetext = get_provider_details_by_identifier('firetext')
firetext.active = False
mock_adjust = mocker.patch('app.dao.provider_details_dao._adjust_provider_priority')
dao_reduce_sms_provider_priority('firetext', time_threshold=timedelta(minutes=5))
assert mock_adjust.called is False
@pytest.mark.parametrize('existing_mmg, existing_firetext, new_mmg, new_firetext', [
(50, 50, 60, 40), # not just 50/50 - 60/40 specifically
(65, 35, 60, 40), # doesn't overshoot if there's less than 10 difference