mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 10:21:14 -05:00
Make provider tests agnostic to actual data
The provider tests are coupled to actual data in the DB, but we shouldn't have to overhaul the tests when this changes. Assuming we don't delete old providers, just testing a subset of the fixture data should give us enough confidence in the code.
This commit is contained in:
@@ -40,7 +40,7 @@ def set_primary_sms_provider(identifier):
|
|||||||
|
|
||||||
def test_can_get_sms_non_international_providers(notify_db_session):
|
def test_can_get_sms_non_international_providers(notify_db_session):
|
||||||
sms_providers = get_provider_details_by_notification_type('sms')
|
sms_providers = get_provider_details_by_notification_type('sms')
|
||||||
assert len(sms_providers) == 2
|
assert len(sms_providers) > 0
|
||||||
assert all('sms' == prov.notification_type for prov in sms_providers)
|
assert all('sms' == prov.notification_type for prov in sms_providers)
|
||||||
|
|
||||||
|
|
||||||
@@ -53,8 +53,8 @@ def test_can_get_sms_international_providers(notify_db_session):
|
|||||||
|
|
||||||
def test_can_get_sms_providers_in_order_of_priority(notify_db_session):
|
def test_can_get_sms_providers_in_order_of_priority(notify_db_session):
|
||||||
providers = get_provider_details_by_notification_type('sms', False)
|
providers = get_provider_details_by_notification_type('sms', False)
|
||||||
|
priorities = [provider.priority for provider in providers]
|
||||||
assert providers[0].priority < providers[1].priority
|
assert priorities == sorted(priorities)
|
||||||
|
|
||||||
|
|
||||||
def test_can_get_email_providers_in_order_of_priority(notify_db_session):
|
def test_can_get_email_providers_in_order_of_priority(notify_db_session):
|
||||||
@@ -332,27 +332,26 @@ def test_dao_get_provider_stats(notify_db_session):
|
|||||||
create_ft_billing('2018-06-15', sms_template_1, provider='firetext', billable_unit=1)
|
create_ft_billing('2018-06-15', sms_template_1, provider='firetext', billable_unit=1)
|
||||||
create_ft_billing('2018-06-28', sms_template_2, provider='mmg', billable_unit=2)
|
create_ft_billing('2018-06-28', sms_template_2, provider='mmg', billable_unit=2)
|
||||||
|
|
||||||
result = dao_get_provider_stats()
|
results = dao_get_provider_stats()
|
||||||
|
|
||||||
assert len(result) == 4
|
assert len(results) > 0
|
||||||
|
|
||||||
assert result[0].identifier == 'ses'
|
ses = next(result for result in results if result.identifier == 'ses')
|
||||||
assert result[0].display_name == 'AWS SES'
|
firetext = next(result for result in results if result.identifier == 'firetext')
|
||||||
assert result[0].created_by_name is None
|
mmg = next(result for result in results if result.identifier == 'mmg')
|
||||||
assert result[0].current_month_billable_sms == 0
|
|
||||||
|
|
||||||
assert result[1].identifier == 'firetext'
|
assert ses.display_name == 'AWS SES'
|
||||||
assert result[1].notification_type == 'sms'
|
assert ses.created_by_name is None
|
||||||
assert result[1].supports_international is False
|
assert ses.current_month_billable_sms == 0
|
||||||
assert result[1].active is True
|
|
||||||
assert result[1].current_month_billable_sms == 5
|
|
||||||
|
|
||||||
assert result[2].identifier == 'mmg'
|
assert firetext.display_name == 'Firetext'
|
||||||
assert result[2].display_name == 'MMG'
|
assert firetext.notification_type == 'sms'
|
||||||
assert result[2].supports_international is True
|
assert firetext.supports_international is False
|
||||||
assert result[2].active is True
|
assert firetext.active is True
|
||||||
assert result[2].current_month_billable_sms == 4
|
assert firetext.current_month_billable_sms == 5
|
||||||
|
|
||||||
assert result[3].identifier == 'dvla'
|
assert mmg.identifier == 'mmg'
|
||||||
assert result[3].current_month_billable_sms == 0
|
assert mmg.display_name == 'MMG'
|
||||||
assert result[3].supports_international is False
|
assert mmg.supports_international is True
|
||||||
|
assert mmg.active is True
|
||||||
|
assert mmg.current_month_billable_sms == 4
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ from tests.app.db import create_ft_billing
|
|||||||
def test_get_provider_details_returns_all_providers(admin_request, notify_db_session):
|
def test_get_provider_details_returns_all_providers(admin_request, notify_db_session):
|
||||||
json_resp = admin_request.get('provider_details.get_providers')['provider_details']
|
json_resp = admin_request.get('provider_details.get_providers')['provider_details']
|
||||||
|
|
||||||
assert len(json_resp) == 4
|
assert len(json_resp) > 0
|
||||||
assert {x['identifier'] for x in json_resp} == {'ses', 'firetext', 'mmg', 'dvla'}
|
assert {'ses', 'firetext', 'mmg', 'dvla'} < {x['identifier'] for x in json_resp}
|
||||||
|
|
||||||
|
|
||||||
def test_get_provider_details_by_id(client, notify_db):
|
def test_get_provider_details_by_id(client, notify_db):
|
||||||
@@ -45,7 +45,7 @@ def test_get_provider_contains_correct_fields(client, sample_template):
|
|||||||
"active", "updated_at", "supports_international",
|
"active", "updated_at", "supports_international",
|
||||||
"current_month_billable_sms"
|
"current_month_billable_sms"
|
||||||
}
|
}
|
||||||
assert len(json_resp) == 4
|
assert len(json_resp) > 0
|
||||||
assert allowed_keys == set(json_resp[0].keys())
|
assert allowed_keys == set(json_resp[0].keys())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user