def set_primary_sms_provider(identifier): primary_provider = get_provider_details_by_identifier(identifier) secondary_provider = get_alternative_sms_provider(identifier) primary_provider.priority = 10 secondary_provider.priority = 20 dao_update_provider_details(primary_provider) dao_update_provider_details(secondary_provider)
def test_switch_sms_provider_to_inactive_provider_does_not_switch(restore_provider_details, current_sms_provider): alternative_sms_provider = get_alternative_sms_provider(current_sms_provider.identifier) alternative_sms_provider.active = False dao_update_provider_details(alternative_sms_provider) dao_switch_sms_provider_to_provider_with_identifier(alternative_sms_provider.identifier) new_provider = get_current_provider("sms") assert new_provider.id == current_sms_provider.id assert new_provider.identifier == current_sms_provider.identifier
def test_get_alternative_sms_provider_returns_next_highest_priority_active_sms_provider(setup_provider_details): active_sms_providers = [ provider for provider in setup_provider_details if provider.notification_type == 'sms' and provider.active ] for provider in active_sms_providers: alternative_provider = get_alternative_sms_provider(provider.identifier) assert alternative_provider.identifier != provider.identifier assert alternative_provider.active
def test_get_sms_provider_with_equal_priority_returns_provider( restore_provider_details, with_active_telstra_provider): current_provider = get_current_provider('sms') new_provider = get_alternative_sms_provider(current_provider.identifier) current_provider.priority = new_provider.priority dao_update_provider_details(current_provider) conflicting_provider = \ dao_get_sms_provider_with_equal_priority(current_provider.identifier, current_provider.priority) assert conflicting_provider
def test_toggle_sms_provider_switches_when_provider_priorities_are_equal(mocker, restore_provider_details, sample_user): mocker.patch("app.provider_details.switch_providers.get_user_by_id", return_value=sample_user) current_provider = get_current_provider("sms") new_provider = get_alternative_sms_provider(current_provider.identifier) current_provider.priority = new_provider.priority dao_update_provider_details(current_provider) dao_toggle_sms_provider(current_provider.identifier) old_starting_provider = get_provider_details_by_identifier(current_provider.identifier) assert new_provider.identifier != old_starting_provider.identifier assert new_provider.priority < old_starting_provider.priority
def test_get_alternative_sms_provider_returns_expected_provider( notify_db, provider_identifier): provider = get_alternative_sms_provider(provider_identifier) assert provider.identifier != provider
def test_get_alternative_sms_provider_fails_if_unrecognised(): with pytest.raises(ValueError): get_alternative_sms_provider('ses')
def test_get_alternative_sms_provider_returns_expected_provider( identifier, expected): assert get_alternative_sms_provider(identifier) == expected
def test_get_alternative_sms_provider_returns_expected_provider( monkeypatch, notify_db, identifier, expected): assert get_alternative_sms_provider(identifier).identifier == expected