clear up where we use restore_provider_details

it now only needs to be used when you're:
* updating providers in ways that will create history (eg through
  regular api calls)
* altering more than just priority in test setup (eg setting inactive,
  deleting, or adding a provider)
This commit is contained in:
Leo Hemsted
2019-11-11 16:35:18 +00:00
parent 3c63ccb159
commit 4a6a228cc2
3 changed files with 15 additions and 16 deletions

View File

@@ -32,32 +32,32 @@ def set_primary_sms_provider(identifier):
dao_update_provider_details(secondary_provider) dao_update_provider_details(secondary_provider)
def test_can_get_sms_non_international_providers(restore_provider_details): 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) == 2
assert all('sms' == prov.notification_type for prov in sms_providers) assert all('sms' == prov.notification_type for prov in sms_providers)
def test_can_get_sms_international_providers(restore_provider_details): def test_can_get_sms_international_providers(notify_db_session):
sms_providers = get_provider_details_by_notification_type('sms', True) sms_providers = get_provider_details_by_notification_type('sms', True)
assert len(sms_providers) == 1 assert len(sms_providers) == 1
assert all('sms' == prov.notification_type for prov in sms_providers) assert all('sms' == prov.notification_type for prov in sms_providers)
assert all(prov.supports_international for prov in sms_providers) assert all(prov.supports_international for prov in sms_providers)
def test_can_get_sms_providers_in_order_of_priority(restore_provider_details): 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)
assert providers[0].priority < providers[1].priority assert providers[0].priority < providers[1].priority
def test_can_get_email_providers_in_order_of_priority(restore_provider_details): def test_can_get_email_providers_in_order_of_priority(notify_db_session):
providers = get_provider_details_by_notification_type('email') providers = get_provider_details_by_notification_type('email')
assert providers[0].identifier == "ses" assert providers[0].identifier == "ses"
def test_can_get_email_providers(restore_provider_details): def test_can_get_email_providers(notify_db_session):
assert len(get_provider_details_by_notification_type('email')) == 1 assert len(get_provider_details_by_notification_type('email')) == 1
types = [provider.notification_type for provider in get_provider_details_by_notification_type('email')] types = [provider.notification_type for provider in get_provider_details_by_notification_type('email')]
assert all('email' == notification_type for notification_type in types) assert all('email' == notification_type for notification_type in types)
@@ -136,7 +136,7 @@ def test_get_alternative_sms_provider_fails_if_unrecognised():
({'mmg': 50, 'firetext': -100}, {'mmg': 40, 'firetext': -90}), ({'mmg': 50, 'firetext': -100}, {'mmg': 40, 'firetext': -90}),
]) ])
def test_reduce_sms_provider_priority_switches_provider( def test_reduce_sms_provider_priority_switches_provider(
restore_provider_details, notify_db_session,
starting_priorities, starting_priorities,
expected_priorities expected_priorities
): ):
@@ -156,21 +156,20 @@ def test_reduce_sms_provider_priority_switches_provider(
def test_reduce_sms_provider_priority_adds_rows_to_history_table( def test_reduce_sms_provider_priority_adds_rows_to_history_table(
mocker, mocker,
restore_provider_details, restore_provider_details,
current_sms_provider,
sample_user sample_user
): ):
raise NotImplementedError raise NotImplementedError
# mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user) # mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user)
# provider_history_rows = ProviderDetailsHistory.query.filter( # provider_history_rows = ProviderDetailsHistory.query.filter(
# ProviderDetailsHistory.id == current_sms_provider.id # ProviderDetailsHistory.id == mmg.id
# ).order_by( # ).order_by(
# desc(ProviderDetailsHistory.version) # desc(ProviderDetailsHistory.version)
# ).all() # ).all()
# dao_toggle_sms_provider(current_sms_provider.identifier) # dao_toggle_sms_provider(mmg.identifier)
# updated_provider_history_rows = ProviderDetailsHistory.query.filter( # updated_provider_history_rows = ProviderDetailsHistory.query.filter(
# ProviderDetailsHistory.id == current_sms_provider.id # ProviderDetailsHistory.id == mmg.id
# ).order_by( # ).order_by(
# desc(ProviderDetailsHistory.version) # desc(ProviderDetailsHistory.version)
# ).all() # ).all()
@@ -196,8 +195,8 @@ def test_reduce_sms_provider_priority_records_notify_user(
# assert new_provider.created_by_id == sample_user.id # assert new_provider.created_by_id == sample_user.id
def test_can_get_all_provider_history(restore_provider_details, current_sms_provider): def test_can_get_all_provider_history(notify_db_session):
assert len(dao_get_provider_versions(current_sms_provider.id)) == 1 assert len(dao_get_provider_versions('mmg')) == 1
@freeze_time('2018-06-28 12:00') @freeze_time('2018-06-28 12:00')

View File

@@ -565,7 +565,6 @@ def test_should_set_notification_billable_units_if_sending_to_provider_fails(
def test_should_send_sms_to_international_providers( def test_should_send_sms_to_international_providers(
restore_provider_details,
sample_template, sample_template,
sample_user, sample_user,
mocker mocker

View File

@@ -2,7 +2,7 @@ import pytest
from marshmallow import ValidationError from marshmallow import ValidationError
from sqlalchemy import desc from sqlalchemy import desc
from app.dao.provider_details_dao import dao_update_provider_details from app.dao.provider_details_dao import dao_update_provider_details, get_provider_details_by_identifier
from app.models import ProviderDetailsHistory from app.models import ProviderDetailsHistory
from tests.app.db import create_api_key from tests.app.db import create_api_key
@@ -101,9 +101,10 @@ def test_user_update_schema_rejects_disallowed_attribute_keys(user_attribute):
def test_provider_details_schema_returns_user_details( def test_provider_details_schema_returns_user_details(
mocker, mocker,
sample_user, sample_user,
current_sms_provider restore_provider_details
): ):
from app.schemas import provider_details_schema from app.schemas import provider_details_schema
current_sms_provider = get_provider_details_by_identifier('mmg')
mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user) mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user)
current_sms_provider.created_by = sample_user current_sms_provider.created_by = sample_user
data = provider_details_schema.dump(current_sms_provider).data data = provider_details_schema.dump(current_sms_provider).data
@@ -115,10 +116,10 @@ def test_provider_details_history_schema_returns_user_details(
mocker, mocker,
sample_user, sample_user,
restore_provider_details, restore_provider_details,
current_sms_provider
): ):
from app.schemas import provider_details_schema from app.schemas import provider_details_schema
mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user) mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user)
current_sms_provider = get_provider_details_by_identifier('mmg')
current_sms_provider.created_by_id = sample_user.id current_sms_provider.created_by_id = sample_user.id
data = provider_details_schema.dump(current_sms_provider).data data = provider_details_schema.dump(current_sms_provider).data