def test_create_inbound_mmg_sms_object(sample_service_full_permissions):
    data = {
        'Message': 'hello+there+%F0%9F%93%A9',
        'Number': sample_service_full_permissions.get_inbound_number(),
        'MSISDN': '447700900001',
        'DateRecieved': '2017-01-02+03%3A04%3A05',
        'ID': 'bar',
    }

    inbound_sms = create_inbound_sms_object(
        sample_service_full_permissions,
        format_mmg_message(data["Message"]),
        data["MSISDN"],
        data["ID"],
        format_mmg_datetime(data["DateRecieved"]),
        "mmg"
    )

    assert inbound_sms.service_id == sample_service_full_permissions.id
    assert inbound_sms.notify_number == sample_service_full_permissions.get_inbound_number()
    assert inbound_sms.user_number == '447700900001'
    assert inbound_sms.provider_date == datetime(2017, 1, 2, 8, 4, 5)
    assert inbound_sms.provider_reference == 'bar'
    assert inbound_sms._content != 'hello there 📩'
    assert inbound_sms.content == 'hello there 📩'
    assert inbound_sms.provider == 'mmg'
def process_pinpoint_inbound_sms(self, event: CeleryEvent):
    provider_name = 'pinpoint'

    if not is_feature_enabled(FeatureFlag.PINPOINT_INBOUND_SMS_ENABLED):
        current_app.logger.info(
            'Pinpoint inbound SMS toggle is disabled, skipping task')
        return True

    pinpoint_message: PinpointInboundSmsMessage = json.loads(event['Message'])

    service = fetch_potential_service(pinpoint_message['destinationNumber'],
                                      provider_name)

    statsd_client.incr(f"inbound.{provider_name}.successful")

    inbound_sms = create_inbound_sms_object(
        service=service,
        content=pinpoint_message['messageBody'],
        notify_number=pinpoint_message['destinationNumber'],
        from_number=pinpoint_message['originationNumber'],
        provider_ref=pinpoint_message['inboundMessageId'],
        date_received=datetime.utcnow(),
        provider_name=provider_name)

    send_inbound_sms_to_service.apply_async([inbound_sms.id, service.id],
                                            queue=QueueNames.NOTIFY)
示例#3
0
def test_create_inbound_sms_object_works_with_alphanumeric_sender(sample_service_full_permissions):
    inbound_sms = create_inbound_sms_object(
        service=sample_service_full_permissions,
        content='hello',
        from_number='ALPHANUM3R1C',
        provider_ref='foo',
        provider_name="twilio"
    )

    assert inbound_sms.user_number == 'ALPHANUM3R1C'
示例#4
0
def test_create_inbound_sms_object(sample_service_full_permissions):
    inbound_sms = create_inbound_sms_object(
        sample_service_full_permissions,
        'hello there 📩',
        '+61412345678',
        'bar',
        'twilio',
    )

    assert inbound_sms.service_id == sample_service_full_permissions.id
    assert inbound_sms.notify_number == sample_service_full_permissions.get_inbound_number()
    assert inbound_sms.user_number == '+61412345678'
    assert inbound_sms.provider_date == datetime(2017, 1, 1, 16, 00, 00)
    assert inbound_sms.provider_reference == 'bar'
    assert inbound_sms._content != 'hello there 📩'
    assert inbound_sms.content == 'hello there 📩'
    assert inbound_sms.provider == 'twilio'
示例#5
0
def test_create_inbound_sms_object_works_with_alphanumeric_sender(
        sample_service_full_permissions):
    data = {
        'Message': 'hello',
        'Number': sample_service_full_permissions.get_inbound_number(),
        'MSISDN': 'ALPHANUM3R1C',
        'DateRecieved': '2017-01-02+03%3A04%3A05',
        'ID': 'bar',
    }

    inbound_sms = create_inbound_sms_object(
        service=sample_service_full_permissions,
        content=format_mmg_message(data["Message"]),
        from_number='ALPHANUM3R1C',
        provider_ref='foo',
        date_received=None,
        provider_name="mmg")

    assert inbound_sms.user_number == 'ALPHANUM3R1C'
示例#6
0
def test_create_inbound_mmg_sms_object_uses_inbound_number_if_set(
        sample_service_full_permissions):
    sample_service_full_permissions.sms_sender = 'foo'
    inbound_number = sample_service_full_permissions.get_inbound_number()

    data = {
        'Message': 'hello+there+%F0%9F%93%A9',
        'Number': sample_service_full_permissions.get_inbound_number(),
        'MSISDN': '07700 900 001',
        'DateRecieved': '2017-01-02+03%3A04%3A05',
        'ID': 'bar',
    }

    inbound_sms = create_inbound_sms_object(
        sample_service_full_permissions, format_mmg_message(data["Message"]),
        data["MSISDN"], data["ID"], data["DateRecieved"], "mmg")

    assert inbound_sms.service_id == sample_service_full_permissions.id
    assert inbound_sms.notify_number == inbound_number
def test_create_inbound_sms_object(sample_service_full_permissions):
    inbound_sms = create_inbound_sms_object(
        service=sample_service_full_permissions,
        content='hello there 📩',
        notify_number='+15551234567',
        from_number='+61412345678',
        provider_ref='bar',
        date_received=datetime.utcnow(),
        provider_name='twilio',
    )

    assert inbound_sms.service_id == sample_service_full_permissions.id
    assert inbound_sms.notify_number == '+15551234567'
    assert inbound_sms.user_number == '+61412345678'
    assert inbound_sms.provider_date == datetime(2017, 1, 1, 16, 00, 00)
    assert inbound_sms.provider_reference == 'bar'
    assert inbound_sms._content != 'hello there 📩'
    assert inbound_sms.content == 'hello there 📩'
    assert inbound_sms.provider == 'twilio'