Merge pull request #1251 from alphagov/updating-service_sms_senders

Insert or update service sms senders
This commit is contained in:
Rebecca Law
2017-09-13 15:10:11 +01:00
committed by GitHub
8 changed files with 110 additions and 10 deletions

View File

@@ -0,0 +1,29 @@
from app.dao.service_sms_sender_dao import insert_or_update_service_sms_sender
from app.models import ServiceSmsSender
from tests.app.db import create_service
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

View File

@@ -1,10 +1,5 @@
import pytest
from flask import url_for
import json
from app.models import InboundNumber
from app.dao.inbound_numbers_dao import dao_get_inbound_number_for_service
from app.models import ServiceSmsSender
from tests.app.db import create_service, create_inbound_number
@@ -115,3 +110,22 @@ def test_rest_set_inbound_number_active_flag_off(
inbound_number_from_db = dao_get_inbound_number_for_service(service.id)
assert not inbound_number_from_db.active
def test_allocate_inbound_number_insert_update_service_sms_sender(
admin_request, notify_db_session
):
service = create_service()
inbound_number = create_inbound_number(number='123')
admin_request.post(
'inbound_number.post_allocate_inbound_number',
_expected_status=204,
service_id=service.id
)
service_sms_senders = ServiceSmsSender.query.all()
assert len(service_sms_senders) == 1
assert service_sms_senders[0].sms_sender == inbound_number.number
assert service_sms_senders[0].inbound_number_id == inbound_number.id
assert service_sms_senders[0].is_default

View File

@@ -16,7 +16,7 @@ from app.models import (
DVLA_ORG_LAND_REGISTRY,
KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST,
EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INBOUND_SMS_TYPE,
)
ServiceSmsSender)
from tests import create_authorization_header
from tests.app.conftest import (
sample_service as create_service,
@@ -282,6 +282,10 @@ def test_create_service(client, sample_user):
assert json_resp['data']['name'] == 'created service'
assert not json_resp['data']['research_mode']
service_sms_senders = ServiceSmsSender.query.filter_by(service_id=service_db.id).all()
assert len(service_sms_senders) == 1
assert service_sms_senders[0].sms_sender == service_db.sms_sender
def test_should_not_create_service_with_missing_user_id_field(notify_api, fake_uuid):
with notify_api.test_request_context():
@@ -1390,6 +1394,10 @@ def test_set_sms_sender_for_service(client, sample_service):
result = json.loads(resp.get_data(as_text=True))
assert resp.status_code == 200
assert result['data']['sms_sender'] == 'elevenchars'
service_sms_senders = ServiceSmsSender.query.filter_by(service_id=sample_service.id).all()
assert len(service_sms_senders) == 1
assert service_sms_senders[0].sms_sender == 'elevenchars'
assert service_sms_senders[0].is_default
def test_set_sms_sender_for_service_rejects_invalid_characters(client, sample_service):