mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 18:31:13 -05:00
randomly choose from providers based on priority
todo: make sure if they don't add up to 100 we do something sensible, especially if they're both 0.
This commit is contained in:
@@ -26,7 +26,7 @@ from app.dao.notifications_dao import (
|
||||
get_notification_with_personalisation,
|
||||
get_notifications_for_job,
|
||||
get_notifications_for_service,
|
||||
is_delivery_slow_for_provider,
|
||||
is_delivery_slow_for_providers,
|
||||
set_scheduled_notification_to_processed,
|
||||
update_notification_status_by_id,
|
||||
update_notification_status_by_reference,
|
||||
@@ -957,7 +957,7 @@ def test_should_exclude_test_key_notifications_by_default(
|
||||
]
|
||||
)
|
||||
@freeze_time("2018-12-04 12:00:00.000000")
|
||||
def test_is_delivery_slow_for_provider(
|
||||
def test_is_delivery_slow_for_providers(
|
||||
notify_db_session,
|
||||
sample_template,
|
||||
normal_sending,
|
||||
@@ -992,7 +992,11 @@ def test_is_delivery_slow_for_provider(
|
||||
for _ in range(slow_delivered):
|
||||
slow_notification(status='delivered')
|
||||
|
||||
assert is_delivery_slow_for_provider(datetime.utcnow(), "mmg", threshold, timedelta(minutes=4)) is expected_result
|
||||
result = is_delivery_slow_for_providers(datetime.utcnow(), threshold, timedelta(minutes=4))
|
||||
assert result == {
|
||||
'firetext': False,
|
||||
'mmg': expected_result
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("options,expected_result", [
|
||||
@@ -1008,22 +1012,23 @@ def test_is_delivery_slow_for_provider(
|
||||
|
||||
])
|
||||
@freeze_time("2018-12-04 12:00:00.000000")
|
||||
def test_delivery_is_delivery_slow_for_provider_filters_out_notifications_it_should_not_count(
|
||||
def test_delivery_is_delivery_slow_for_providers_filters_out_notifications_it_should_not_count(
|
||||
notify_db_session,
|
||||
sample_template,
|
||||
options,
|
||||
expected_result
|
||||
):
|
||||
create_notification_with = {
|
||||
create_slow_notification_with = {
|
||||
"template": sample_template,
|
||||
"sent_at": datetime.now() - timedelta(minutes=5),
|
||||
"updated_at": datetime.now(),
|
||||
}
|
||||
create_notification_with.update(options)
|
||||
create_slow_notification_with.update(options)
|
||||
create_notification(
|
||||
**create_notification_with
|
||||
**create_slow_notification_with
|
||||
)
|
||||
assert is_delivery_slow_for_provider(datetime.utcnow(), "mmg", 0.1, timedelta(minutes=4)) is expected_result
|
||||
result = is_delivery_slow_for_providers(datetime.utcnow(), 0.1, timedelta(minutes=4))
|
||||
assert result['mmg'] == expected_result
|
||||
|
||||
|
||||
def test_dao_get_notifications_by_to_field(sample_template):
|
||||
|
||||
@@ -40,7 +40,7 @@ def test_should_return_highest_priority_active_provider(restore_provider_details
|
||||
first = providers[0]
|
||||
second = providers[1]
|
||||
|
||||
assert send_to_providers.provider_to_use('sms', '1234').name == first.identifier
|
||||
assert send_to_providers.provider_to_use('sms').name == first.identifier
|
||||
|
||||
first.priority = 20
|
||||
second.priority = 10
|
||||
@@ -48,7 +48,7 @@ def test_should_return_highest_priority_active_provider(restore_provider_details
|
||||
provider_details_dao.dao_update_provider_details(first)
|
||||
provider_details_dao.dao_update_provider_details(second)
|
||||
|
||||
assert send_to_providers.provider_to_use('sms', '1234').name == second.identifier
|
||||
assert send_to_providers.provider_to_use('sms').name == second.identifier
|
||||
|
||||
first.priority = 10
|
||||
first.active = False
|
||||
@@ -57,12 +57,12 @@ def test_should_return_highest_priority_active_provider(restore_provider_details
|
||||
provider_details_dao.dao_update_provider_details(first)
|
||||
provider_details_dao.dao_update_provider_details(second)
|
||||
|
||||
assert send_to_providers.provider_to_use('sms', '1234').name == second.identifier
|
||||
assert send_to_providers.provider_to_use('sms').name == second.identifier
|
||||
|
||||
first.active = True
|
||||
provider_details_dao.dao_update_provider_details(first)
|
||||
|
||||
assert send_to_providers.provider_to_use('sms', '1234').name == first.identifier
|
||||
assert send_to_providers.provider_to_use('sms').name == first.identifier
|
||||
|
||||
|
||||
def test_should_send_personalised_template_to_correct_sms_provider_and_persist(
|
||||
|
||||
Reference in New Issue
Block a user