示例#1
0
def test_dao_fetch_service_by_inbound_number_with_inactive_number_returns_empty(notify_db_session):
    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')

    assert service is None
def test_dao_fetch_service_by_inbound_number_with_unknown_number(
        notify_db_session):
    create_service_with_inbound_number(inbound_number='1', service_name='a')

    service = dao_fetch_service_by_inbound_number('9')

    assert service is None
示例#3
0
def test_dao_fetch_service_by_inbound_number_when_inbound_number_set(notify_db_session):
    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')

    assert service.id == service_1.id
def test_dao_fetch_service_by_inbound_number_with_inbound_number_not_set(
        notify_db_session):
    create_inbound_number('1')

    service = dao_fetch_service_by_inbound_number('1')

    assert service is None
示例#5
0
def test_dao_fetch_service_by_inbound_number_with_unknown_number(
        notify_db_session):
    create_service_with_inbound_number(inbound_number="1", service_name="a")

    service = dao_fetch_service_by_inbound_number("9")

    assert service is None
示例#6
0
def test_dao_fetch_service_by_inbound_number_when_inbound_number_set(
        notify_db_session):
    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")

    assert service.id == service_1.id
示例#7
0
def test_dao_fetch_service_by_inbound_number_with_inbound_number(notify_db_session):
    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')

    service = dao_fetch_service_by_inbound_number('1')

    assert foo1.id == service.id
示例#8
0
def test_dao_fetch_service_by_inbound_number_with_inbound_number(
        notify_db_session):
    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")

    service = dao_fetch_service_by_inbound_number("1")

    assert foo1.id == service.id
示例#9
0
def fetch_potential_service(inbound_number, provider_name):
    service = dao_fetch_service_by_inbound_number(inbound_number)

    if not service:
        current_app.logger.error(
            'Inbound number "{}" from {} not associated with a service'.format(
                inbound_number, provider_name))
        return False

    if not has_inbound_sms_permissions(service.permissions):
        current_app.logger.error(
            'Service "{}" does not allow inbound SMS'.format(service.id))
        return False

    return service
示例#10
0
def fetch_potential_service(inbound_number: str,
                            provider_name: str) -> Service:
    service = dao_fetch_service_by_inbound_number(inbound_number)

    if not service:
        statsd_client.incr(f"inbound.{provider_name}.failed")
        message = f'Inbound number "{inbound_number}" from {provider_name} not associated with a service'
        current_app.logger.error(message)
        raise NoSuitableServiceForInboundSms(message)

    elif not has_inbound_sms_permissions(service.permissions):
        statsd_client.incr(f"inbound.{provider_name}.failed")
        message = f'Service "{service.id}" does not allow inbound SMS'
        current_app.logger.error(message)
        raise NoSuitableServiceForInboundSms(message)

    else:
        return service