Refactor the sms sender code to remove any unused methods.

Refactor tests/db/create_service() to behave more like the real world.
Created new create_service_with_inbound_number and create_service_with_defined_sms_sender() test/db methods.
This commit is contained in:
Rebecca Law
2017-11-07 14:26:18 +00:00
parent 430342b567
commit 0054361044
15 changed files with 224 additions and 379 deletions

View File

@@ -4,7 +4,6 @@ import pytest
from sqlalchemy.exc import SQLAlchemyError
from app.dao.service_sms_sender_dao import (
insert_or_update_service_sms_sender,
dao_add_sms_sender_for_service,
dao_update_service_sms_sender,
dao_get_service_sms_senders_by_id,
@@ -14,34 +13,8 @@ from app.models import ServiceSmsSender
from tests.app.db import create_service, create_inbound_number
def test_update_service_sms_sender_updates_existing_row(notify_db_session):
service = create_service()
insert_or_update_service_sms_sender(service, 'testing')
service_sms_senders = ServiceSmsSender.query.filter_by(service_id=service.id).all()
assert len(service_sms_senders) == 1
assert service_sms_senders[0].sms_sender == service.sms_sender
insert_or_update_service_sms_sender(service, 'NEW_SMS')
updated_sms_senders = ServiceSmsSender.query.filter_by(service_id=service.id).all()
assert len(updated_sms_senders) == 1
assert updated_sms_senders[0].sms_sender == 'NEW_SMS'
assert updated_sms_senders[0].is_default
def test_create_service_inserts_new_service_sms_sender(notify_db_session):
assert ServiceSmsSender.query.count() == 0
service = create_service(sms_sender='new_sms')
insert_or_update_service_sms_sender(service, 'new_sms')
service_sms_senders = ServiceSmsSender.query.all()
assert len(service_sms_senders) == 1
assert service_sms_senders[0].sms_sender == 'new_sms'
assert service_sms_senders[0].is_default
def test_dao_get_service_sms_senders_id(notify_db_session):
service = create_service(sms_sender='first_sms')
service = create_service()
second_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='second',
is_default=False,
@@ -60,7 +33,7 @@ def test_dao_get_service_sms_senders_id_raise_exception_when_not_found(notify_db
def test_dao_get_sms_senders_by_service_id(notify_db_session):
service = create_service(sms_sender='first_sms')
service = create_service()
second_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='second',
is_default=False,
@@ -69,13 +42,13 @@ def test_dao_get_sms_senders_by_service_id(notify_db_session):
assert len(results) == 2
for x in results:
if x.is_default:
assert x.sms_sender == 'first_sms'
assert x.sms_sender == 'testing'
else:
assert x == second_sender
def test_dao_add_sms_sender_for_service(notify_db_session):
service = create_service(sms_sender="first_sms")
service = create_service()
new_sms_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='new_sms',
is_default=False,
@@ -83,13 +56,13 @@ def test_dao_add_sms_sender_for_service(notify_db_session):
service_sms_senders = ServiceSmsSender.query.order_by(ServiceSmsSender.created_at).all()
assert len(service_sms_senders) == 2
assert service_sms_senders[0].sms_sender == 'first_sms'
assert service_sms_senders[0].sms_sender == 'testing'
assert service_sms_senders[0].is_default
assert service_sms_senders[1] == new_sms_sender
def test_dao_add_sms_sender_for_service_switches_default(notify_db_session):
service = create_service(sms_sender="first_sms")
service = create_service()
new_sms_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='new_sms',
is_default=True,
@@ -97,13 +70,13 @@ def test_dao_add_sms_sender_for_service_switches_default(notify_db_session):
service_sms_senders = ServiceSmsSender.query.order_by(ServiceSmsSender.created_at).all()
assert len(service_sms_senders) == 2
assert service_sms_senders[0].sms_sender == 'first_sms'
assert service_sms_senders[0].sms_sender == 'testing'
assert not service_sms_senders[0].is_default
assert service_sms_senders[1] == new_sms_sender
def test_dao_update_service_sms_sender(notify_db_session):
service = create_service(sms_sender='first_sms')
service = create_service()
service_sms_senders = ServiceSmsSender.query.filter_by(service_id=service.id).all()
assert len(service_sms_senders) == 1
sms_sender_to_update = service_sms_senders[0]
@@ -120,7 +93,7 @@ def test_dao_update_service_sms_sender(notify_db_session):
def test_dao_update_service_sms_sender_switches_default(notify_db_session):
service = create_service(sms_sender='first_sms')
service = create_service()
sms_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='new_sms',
is_default=False,
@@ -131,14 +104,14 @@ def test_dao_update_service_sms_sender_switches_default(notify_db_session):
sms_sender="updated")
sms_senders = ServiceSmsSender.query.filter_by(service_id=service.id).order_by(ServiceSmsSender.created_at).all()
assert len(sms_senders) == 2
assert sms_senders[0].sms_sender == 'first_sms'
assert sms_senders[0].sms_sender == 'testing'
assert not sms_senders[0].is_default
assert sms_senders[1].sms_sender == 'updated'
assert sms_senders[1].is_default
def test_dao_update_service_sms_sender_raises_exception_when_no_default_after_update(notify_db_session):
service = create_service(sms_sender='first_sms')
service = create_service()
sms_sender = dao_add_sms_sender_for_service(service_id=service.id,
sms_sender='new_sms',
is_default=True,
@@ -151,7 +124,7 @@ def test_dao_update_service_sms_sender_raises_exception_when_no_default_after_up
def test_update_existing_sms_sender_with_inbound_number(notify_db_session):
service = create_service(sms_sender='testing')
service = create_service()
inbound_number = create_inbound_number(number='12345', service_id=service.id)
existing_sms_sender = ServiceSmsSender.query.filter_by(service_id=service.id).one()
@@ -166,7 +139,7 @@ def test_update_existing_sms_sender_with_inbound_number(notify_db_session):
def test_update_existing_sms_sender_with_inbound_number_raises_exception_if_inbound_number_does_not_exist(
notify_db_session
):
service = create_service(sms_sender='testing')
service = create_service()
existing_sms_sender = ServiceSmsSender.query.filter_by(service_id=service.id).one()
with pytest.raises(expected_exception=SQLAlchemyError):
update_existing_sms_sender_with_inbound_number(service_sms_sender=existing_sms_sender,

View File

@@ -9,7 +9,8 @@ from freezegun import freeze_time
from app import db
from app.dao.inbound_numbers_dao import (
dao_set_inbound_number_to_service,
dao_get_available_inbound_numbers
dao_get_available_inbound_numbers,
dao_set_inbound_number_active_flag
)
from app.dao.services_dao import (
dao_create_service,
@@ -61,7 +62,10 @@ from app.models import (
SERVICE_PERMISSION_TYPES
)
from tests.app.db import create_inbound_number, create_user, create_service
from tests.app.db import (
create_inbound_number, create_user, create_service, create_service_with_inbound_number,
create_service_with_defined_sms_sender
)
from tests.app.conftest import (
sample_notification as create_notification,
sample_notification_history as create_notification_history,
@@ -941,10 +945,9 @@ def test_dao_fetch_active_users_for_service_returns_active_only(notify_db, notif
def test_dao_fetch_service_by_inbound_number_with_inbound_number(notify_db_session):
foo1 = create_service(service_name='a', sms_sender='1')
foo2 = create_service(service_name='b', sms_sender='2')
bar = create_service(service_name='c', sms_sender='3')
create_inbound_number('1', service_id=foo1.id)
foo1 = create_service_with_inbound_number(service_name='a', inbound_number='1')
create_service_with_defined_sms_sender(service_name='b', sms_sender_value='2')
create_service_with_defined_sms_sender(service_name='c', sms_sender_value='3')
create_inbound_number('2')
create_inbound_number('3')
@@ -962,9 +965,8 @@ def test_dao_fetch_service_by_inbound_number_with_inbound_number_not_set(notify_
def test_dao_fetch_service_by_inbound_number_when_inbound_number_set(notify_db_session):
service_1 = create_service(service_name='a', sms_sender=None)
service_2 = create_service(service_name='b')
inbound_number = create_inbound_number('1', service_id=service_1.id)
service_1 = create_service_with_inbound_number(inbound_number='1', service_name='a')
create_service(service_name='b')
service = dao_fetch_service_by_inbound_number('1')
@@ -972,8 +974,7 @@ def test_dao_fetch_service_by_inbound_number_when_inbound_number_set(notify_db_s
def test_dao_fetch_service_by_inbound_number_with_unknown_number(notify_db_session):
service = create_service(service_name='a', sms_sender=None)
inbound_number = create_inbound_number('1', service_id=service.id)
create_service_with_inbound_number(inbound_number='1', service_name='a')
service = dao_fetch_service_by_inbound_number('9')
@@ -981,8 +982,8 @@ def test_dao_fetch_service_by_inbound_number_with_unknown_number(notify_db_sessi
def test_dao_fetch_service_by_inbound_number_with_inactive_number_returns_empty(notify_db_session):
service = create_service(service_name='a', sms_sender=None)
inbound_number = create_inbound_number('1', service_id=service.id, active=False)
service = create_service_with_inbound_number(inbound_number='1', service_name='a')
dao_set_inbound_number_active_flag(service_id=service.id, active=False)
service = dao_fetch_service_by_inbound_number('1')