Files
notifications-api/tests/app/dao/test_provider_details_dao.py

72 lines
2.3 KiB
Python
Raw Normal View History

from app.models import ProviderDetails, ProviderDetailsHistory
from app import clients
from app.dao.provider_details_dao import (
get_provider_details,
get_provider_details_by_notification_type,
dao_update_provider_details
)
def test_can_get_all_providers(restore_provider_details):
2016-05-11 11:34:46 +01:00
assert len(get_provider_details()) == 4
def test_can_get_sms_providers(restore_provider_details):
sms_providers = get_provider_details_by_notification_type('sms')
assert len(sms_providers) == 3
assert all('sms' == prov.notification_type for prov in sms_providers)
def test_can_get_sms_providers_in_order(restore_provider_details):
providers = get_provider_details_by_notification_type('sms')
assert providers[0].identifier == "mmg"
assert providers[1].identifier == "firetext"
2016-05-11 11:34:46 +01:00
assert providers[2].identifier == "loadtesting"
def test_can_get_email_providers_in_order(restore_provider_details):
providers = get_provider_details_by_notification_type('email')
assert providers[0].identifier == "ses"
def test_can_get_email_providers(restore_provider_details):
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_not_error_if_any_provider_in_code_not_in_database(restore_provider_details):
providers = ProviderDetails.query.all()
ProviderDetails.query.filter_by(identifier='mmg').delete()
assert clients.get_sms_client('mmg')
def test_update_adds_history(restore_provider_details):
ses = ProviderDetails.query.filter(ProviderDetails.identifier == 'ses').one()
ses_history = ProviderDetailsHistory.query.filter(ProviderDetailsHistory.id == ses.id).one()
assert ses.version == 1
assert ses_history.version == 1
ses.active = False
dao_update_provider_details(ses)
assert not ses.active
ses_history = ProviderDetailsHistory.query.filter(
ProviderDetailsHistory.id == ses.id
).order_by(
ProviderDetailsHistory.version
).all()
assert ses_history[0].active
assert ses_history[0].version == 1
assert not ses_history[1].active
assert ses_history[1].version == 2