mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-30 06:21:50 -05:00
Merge pull request #1200 from alphagov/ken-refactor-inbound_numbers
Refactor inbound numbers
This commit is contained in:
@@ -30,7 +30,7 @@ from app.dao.services_dao import (
|
||||
dao_suspend_service,
|
||||
dao_resume_service,
|
||||
dao_fetch_active_users_for_service,
|
||||
dao_fetch_services_by_sms_sender
|
||||
dao_fetch_service_by_inbound_number
|
||||
)
|
||||
from app.dao.service_permissions_dao import dao_add_service_permission, dao_remove_service_permission
|
||||
from app.dao.users_dao import save_model_user
|
||||
@@ -892,76 +892,53 @@ def test_dao_fetch_active_users_for_service_returns_active_only(notify_db, notif
|
||||
assert len(users) == 1
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_with_inbound_number(notify_db_session):
|
||||
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')
|
||||
create_inbound_number('1', service_id=foo1.id)
|
||||
create_inbound_number('2')
|
||||
create_inbound_number('3')
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('1')
|
||||
service = dao_fetch_service_by_inbound_number('1')
|
||||
|
||||
assert len(services) == 1
|
||||
assert foo1.id == services[0].id
|
||||
assert foo1.id == service.id
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_with_inbound_number_not_set(notify_db_session):
|
||||
def test_dao_fetch_service_by_inbound_number_with_inbound_number_not_set(notify_db_session):
|
||||
create_inbound_number('1')
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('1')
|
||||
service = dao_fetch_service_by_inbound_number('1')
|
||||
|
||||
assert services == []
|
||||
assert service is None
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_when_inbound_number_set(notify_db_session):
|
||||
service = create_service(service_name='a', sms_sender=None)
|
||||
service = create_service(service_name='b')
|
||||
inbound_number = create_inbound_number('1', service_id=service.id)
|
||||
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)
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('1')
|
||||
service = dao_fetch_service_by_inbound_number('1')
|
||||
|
||||
assert len(services) == 1
|
||||
assert services[0].id == service.id
|
||||
assert service.id == service_1.id
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_when_inbound_number_set_and_sms_sender_same(notify_db_session):
|
||||
service = create_service(service_name='a', sms_sender=None)
|
||||
service = create_service(service_name='b', sms_sender='1')
|
||||
inbound_number = create_inbound_number('1', service_id=service.id)
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('1')
|
||||
|
||||
assert len(services) == 1
|
||||
assert services[0].id == service.id
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_when_inbound_number_not_set_gets_sms_sender(notify_db_session):
|
||||
service = create_service(service_name='a', sms_sender=None)
|
||||
service = create_service(service_name='b', sms_sender='testing_gov')
|
||||
inbound_number = create_inbound_number('1', service_id=service.id)
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('testing_gov')
|
||||
|
||||
assert services == []
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_with_unknown_number(notify_db_session):
|
||||
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)
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('9')
|
||||
service = dao_fetch_service_by_inbound_number('9')
|
||||
|
||||
assert services == []
|
||||
assert service is None
|
||||
|
||||
|
||||
def test_dao_fetch_services_by_sms_sender_with_inactive_number_returns_empty(notify_db_session):
|
||||
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)
|
||||
|
||||
services = dao_fetch_services_by_sms_sender('1')
|
||||
service = dao_fetch_service_by_inbound_number('1')
|
||||
|
||||
assert services == []
|
||||
assert service is None
|
||||
|
||||
|
||||
def test_dao_allocating_inbound_number_shows_on_service(notify_db_session, sample_inbound_numbers):
|
||||
|
||||
@@ -71,11 +71,11 @@ def create_service(
|
||||
sms_sender=sms_sender,
|
||||
)
|
||||
|
||||
dao_create_service(service, service.created_by, service_id, service_permissions=service_permissions)
|
||||
|
||||
if do_create_inbound_number and INBOUND_SMS_TYPE in service_permissions:
|
||||
create_inbound_number(number=sms_sender, service_id=service.id)
|
||||
|
||||
dao_create_service(service, service.created_by, service_id, service_permissions=service_permissions)
|
||||
|
||||
service.active = active
|
||||
service.research_mode = research_mode
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ from unittest.mock import call
|
||||
import pytest
|
||||
from flask import json
|
||||
|
||||
from app.dao.services_dao import dao_fetch_services_by_sms_sender
|
||||
from app.dao.services_dao import dao_fetch_service_by_inbound_number
|
||||
from app.notifications.receive_notifications import (
|
||||
format_mmg_message,
|
||||
format_mmg_datetime,
|
||||
@@ -85,7 +85,12 @@ def test_receive_notification_from_firetext_without_permissions_does_not_persist
|
||||
permissions
|
||||
):
|
||||
service = create_service(sms_sender='07111111111', service_permissions=permissions)
|
||||
mocked = mocker.patch("app.notifications.receive_notifications.tasks.send_inbound_sms_to_service.apply_async")
|
||||
mocker.patch("app.notifications.receive_notifications.dao_fetch_service_by_inbound_number",
|
||||
return_value=service)
|
||||
mocked_send_inbound_sms = mocker.patch(
|
||||
"app.notifications.receive_notifications.tasks.send_inbound_sms_to_service.apply_async")
|
||||
mocked_has_permissions = mocker.patch(
|
||||
"app.notifications.receive_notifications.has_inbound_sms_permissions", return_value=False)
|
||||
|
||||
data = "source=07999999999&destination=07111111111&message=this is a message&time=2017-01-01 12:00:00"
|
||||
response = client.post(
|
||||
@@ -99,7 +104,7 @@ def test_receive_notification_from_firetext_without_permissions_does_not_persist
|
||||
|
||||
assert result['status'] == 'ok'
|
||||
assert InboundSms.query.count() == 0
|
||||
assert mocked.called is False
|
||||
assert not mocked_send_inbound_sms.called
|
||||
|
||||
|
||||
def test_receive_notification_without_permissions_does_not_create_inbound_even_with_inbound_number_set(
|
||||
|
||||
Reference in New Issue
Block a user