def test_should_send_sms_to_international_providers(
    restore_provider_details,
    sample_sms_template_with_html,
    sample_user,
    mocker
):
    mocker.patch('app.provider_details.switch_providers.get_user_by_id', return_value=sample_user)

    dao_switch_sms_provider_to_provider_with_identifier('firetext')

    db_notification_uk = create_notification(
        template=sample_sms_template_with_html,
        to_field="+16135555555",
        personalisation={"name": "Jo"},
        status='created',
        international=False,
        reply_to_text=sample_sms_template_with_html.service.get_default_sms_sender()
    )

    db_notification_international = create_notification(
        template=sample_sms_template_with_html,
        to_field="+1613555555",
        personalisation={"name": "Jo"},
        status='created',
        international=False,
        reply_to_text=sample_sms_template_with_html.service.get_default_sms_sender()
    )

    mocker.patch('app.aws_sns_client.send_sms')
    mocker.patch('app.mmg_client.send_sms')

    send_to_providers.send_sms_to_provider(
        db_notification_uk
    )

    mmg_client.send_sms.assert_called_once_with(
        to="16135555555",
        content=ANY,
        reference=str(db_notification_uk.id),
        sender=current_app.config['FROM_NUMBER']
    )

    send_to_providers.send_sms_to_provider(
        db_notification_international
    )

    aws_sns_client.send_sms.assert_called_once_with(
        to="601117224412",
        content=ANY,
        reference=str(db_notification_international.id),
        sender=current_app.config['FROM_NUMBER']
    )

    notification_uk = Notification.query.filter_by(id=db_notification_uk.id).one()
    notification_int = Notification.query.filter_by(id=db_notification_international.id).one()

    assert notification_uk.status == 'sending'
    assert notification_uk.sent_by == 'firetext'
    assert notification_int.status == 'sent'
    assert notification_int.sent_by == 'mmg'
Пример #2
0
def test_switch_sms_provider_to_current_provider_does_not_switch(
        restore_provider_details, current_sms_provider):
    dao_switch_sms_provider_to_provider_with_identifier(
        current_sms_provider.identifier)
    new_provider = get_current_provider('sms')

    assert current_sms_provider.id == new_provider.id
    assert current_sms_provider.identifier == new_provider.identifier
Пример #3
0
def test_should_send_sms_to_international_providers(
        notify_db, restore_provider_details, sample_sms_template_with_html,
        sample_user, mocker):
    mocker.patch('app.provider_details.switch_providers.get_user_by_id',
                 return_value=sample_user)

    dao_switch_sms_provider_to_provider_with_identifier('sap')

    db_notification_au = create_notification(
        template=sample_sms_template_with_html,
        to_field="+61412888999",
        personalisation={"name": "Jo"},
        status='created',
        international=False,
        reply_to_text=sample_sms_template_with_html.service.
        get_default_sms_sender())

    db_notification_international = create_notification(
        template=sample_sms_template_with_html,
        to_field="+61412111222",
        personalisation={"name": "Jo"},
        status='created',
        international=True,
        reply_to_text=sample_sms_template_with_html.service.
        get_default_sms_sender())

    mocker.patch('app.sap_sms_client.send_sms',
                 return_value=[
                     'MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', NOTIFICATION_SENDING
                 ])

    send_to_providers.send_sms_to_provider(db_notification_au)

    sap_sms_client.send_sms.assert_called_with(
        to="+61412888999",
        content=ANY,
        reference=str(db_notification_au.id),
        sender=current_app.config['FROM_NUMBER'])

    send_to_providers.send_sms_to_provider(db_notification_international)

    sap_sms_client.send_sms.assert_called_with(
        to="+61412111222",
        content=ANY,
        reference=str(db_notification_international.id),
        sender=current_app.config['FROM_NUMBER'])

    notification_au = Notification.query.filter_by(
        id=db_notification_au.id).one()
    notification_int = Notification.query.filter_by(
        id=db_notification_international.id).one()

    assert notification_au.status == 'sending'
    assert notification_au.sent_by == 'sap'
    assert notification_au.reference == 'MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    assert notification_int.status == 'sent'
    assert notification_int.sent_by == 'sap'
    assert notification_int.reference == 'MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
def test_switch_sms_provider_to_inactive_provider_does_not_switch(setup_sms_providers):
    [inactive_provider, current_provider, _] = setup_sms_providers
    assert get_current_provider('sms').identifier == current_provider.identifier

    dao_switch_sms_provider_to_provider_with_identifier(inactive_provider.identifier)
    new_provider = get_current_provider('sms')

    assert new_provider.id == current_provider.id
    assert new_provider.identifier == current_provider.identifier
Пример #5
0
def test_switch_sms_provider_to_inactive_provider_does_not_switch(restore_provider_details, current_sms_provider):
    alternative_sms_provider = get_alternative_sms_provider(current_sms_provider.identifier)
    alternative_sms_provider.active = False
    dao_update_provider_details(alternative_sms_provider)

    dao_switch_sms_provider_to_provider_with_identifier(alternative_sms_provider.identifier)
    new_provider = get_current_provider("sms")

    assert new_provider.id == current_sms_provider.id
    assert new_provider.identifier == current_sms_provider.identifier