mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-22 08:21:13 -05:00
59 lines
2.2 KiB
Python
59 lines
2.2 KiB
Python
from app.models import ProviderDetails
|
|
from app import clients
|
|
from app.dao.provider_details_dao import (
|
|
get_provider_details,
|
|
get_provider_details_by_notification_type
|
|
)
|
|
|
|
|
|
def test_can_get_all_providers(notify_db, notify_db_session):
|
|
assert len(get_provider_details()) == 4
|
|
|
|
|
|
def test_can_get_sms_providers(notify_db, notify_db_session):
|
|
assert len(get_provider_details_by_notification_type('sms')) == 3
|
|
types = [provider.notification_type for provider in get_provider_details_by_notification_type('sms')]
|
|
assert all('sms' == notification_type for notification_type in types)
|
|
|
|
|
|
def test_can_get_sms_providers_in_order(notify_db, notify_db_session):
|
|
providers = get_provider_details_by_notification_type('sms')
|
|
|
|
assert providers[0].identifier == "mmg"
|
|
assert providers[1].identifier == "firetext"
|
|
assert providers[2].identifier == "loadtesting"
|
|
|
|
|
|
def test_can_get_email_providers_in_order(notify_db, notify_db_session):
|
|
providers = get_provider_details_by_notification_type('email')
|
|
|
|
assert providers[0].identifier == "ses"
|
|
|
|
|
|
def test_can_get_email_providers(notify_db, notify_db_session):
|
|
assert len(get_provider_details_by_notification_type('email')) == 1
|
|
types = [provider.notification_type for provider in get_provider_details_by_notification_type('email')]
|
|
assert all('email' == notification_type for notification_type in types)
|
|
|
|
|
|
def test_should_error_if_any_provider_in_database_not_in_code(notify_db, notify_db_session, notify_api):
|
|
providers = ProviderDetails.query.all()
|
|
|
|
for provider in providers:
|
|
if provider.notification_type == 'sms':
|
|
assert clients.get_sms_client(provider.identifier)
|
|
if provider.notification_type == 'email':
|
|
assert clients.get_email_client(provider.identifier)
|
|
|
|
|
|
def test_should_not_error_if_any_provider_in_code_not_in_database(notify_db, notify_db_session, notify_api):
|
|
providers = ProviderDetails.query.all()
|
|
|
|
ProviderDetails.query.filter_by(identifier='mmg').delete()
|
|
|
|
for provider in providers:
|
|
if provider.notification_type == 'sms':
|
|
assert clients.get_sms_client(provider.identifier)
|
|
if provider.notification_type == 'email':
|
|
assert clients.get_email_client(provider.identifier)
|