Beispiel #1
0
def test_get_sms_status(app_, mock_twilio_get):
    with mock_twilio_get:
        from notifications_delivery.clients.sms.twilio import TwilioClient
        twilio_client = TwilioClient(app_.config)
        msg_id = "123"
        status = twilio_client.status(msg_id)
        twilio_client.client.messages.get.assert_called_with(msg_id)
def test_get_sms_status(app_,
                        mock_twilio_get):
    with mock_twilio_get:
        from notifications_delivery.clients.sms.twilio import TwilioClient
        twilio_client = TwilioClient(app_.config)
        msg_id = "123"
        status = twilio_client.status(msg_id)
        twilio_client.client.messages.get.assert_called_with(msg_id)
Beispiel #3
0
def test_get_sms_status_failed(app_, mock_twilio_get_exception):
    with mock_twilio_get_exception:
        from notifications_delivery.clients.sms.twilio import (
            TwilioClient, SmsClientException)
        twilio_client = TwilioClient(app_.config)
        msg_id = "123"
        try:
            status = twilio_client.status(msg_id)
            pytest.fail("Failed to raise SmsClientException")
        except SmsClientException as e:
            pass
Beispiel #4
0
def test_send_sms(app_, mock_twilio_create, sms_template_notification,
                  sms_content):
    with mock_twilio_create:
        from notifications_delivery.clients.sms.twilio import TwilioClient
        twilio_client = TwilioClient(app_.config)
        request_id = twilio_client.send_sms(sms_template_notification,
                                            sms_content)
        assert request_id
        twilio_client.client.messages.create.assert_called_with(
            to=sms_template_notification['to'],
            body=sms_content,
            from_=twilio_client.from_number)
def test_get_sms_status_failed(app_,
                               mock_twilio_get_exception):
    with mock_twilio_get_exception:
        from notifications_delivery.clients.sms.twilio import (
            TwilioClient, SmsClientException)
        twilio_client = TwilioClient(app_.config)
        msg_id = "123"
        try:
            status = twilio_client.status(msg_id)
            pytest.fail("Failed to raise SmsClientException")
        except SmsClientException as e:
            pass
Beispiel #6
0
def test_send_sms_failed(app_, mock_twilio_create_exception,
                         sms_template_notification, sms_content):
    with mock_twilio_create_exception:
        from notifications_delivery.clients.sms.twilio import (
            TwilioClient, SmsClientException)
        twilio_client = TwilioClient(app_.config)
        from twilio.rest import TwilioRestClient
        try:
            message_id = twilio_client.send_sms(sms_template_notification,
                                                sms_content)
            pytest.fail("Failed to raise SmsClientException")
        except SmsClientException as e:
            pass
def test_send_sms(app_,
                  mock_twilio_create,
                  sms_template_notification,
                  sms_content):
    with mock_twilio_create:
        from notifications_delivery.clients.sms.twilio import TwilioClient
        twilio_client = TwilioClient(app_.config)
        request_id = twilio_client.send_sms(sms_template_notification, sms_content)
        assert request_id
        twilio_client.client.messages.create.assert_called_with(
            to=sms_template_notification['to'],
            body=sms_content,
            from_=twilio_client.from_number)
def test_send_sms_failed(app_,
                         mock_twilio_create_exception,
                         sms_template_notification,
                         sms_content):
    with mock_twilio_create_exception:
        from notifications_delivery.clients.sms.twilio import (
            TwilioClient, SmsClientException)
        twilio_client = TwilioClient(app_.config)
        from twilio.rest import TwilioRestClient
        try:
            message_id = twilio_client.send_sms(sms_template_notification, sms_content)
            pytest.fail("Failed to raise SmsClientException")
        except SmsClientException as e:
            pass
def process_all_queues(config, queue_name_prefix):
    """
    For each queue on the aws account process one message.
    """
    logger = _set_up_logger(config)
    twilio_client = TwilioClient(config)
    aws_ses_client = AwsSesClient(region=config['AWS_REGION'])
    notify_beta_client = ApiClient(
        base_url=config['API_HOST_NAME'],
        client_id=config['DELIVERY_CLIENT_USER_NAME'],
        secret=config['DELIVERY_CLIENT_SECRET'])
    queues = _get_all_queues(config, queue_name_prefix)
    for queue in queues:
        try:
            messages = queue.receive_messages(
                MaxNumberOfMessages=config['PROCESSOR_MAX_NUMBER_OF_MESSAGES'],
                VisibilityTimeout=config['PROCESSOR_VISIBILITY_TIMEOUT'],
                MessageAttributeNames=config['NOTIFICATION_ATTRIBUTES'])
            for message in messages:
                logger.info("Processing message {}".format(
                    _get_message_id(message)))
                to_delete = True
                try:
                    _process_message(config, message, twilio_client,
                                     aws_ses_client, notify_beta_client)
                except ProcessingError as e:
                    msg = ("Failed prcessing message from queue {}."
                           " The message will not be returned to the queue."
                           ).format(queue.url)
                    logger.error(msg)
                    logger.exception(e)
                    to_delete = True
                except ExternalConnectionError as e:
                    msg = (
                        "Failed prcessing message from queue {}."
                        " The message will be returned to the queue.").format(
                            queue.url)
                    logger.error(msg)
                    logger.exception(e)
                    to_delete = False
                if to_delete:
                    message.delete()
                    logger.info("Deleted message {}".format(
                        _get_message_id(message)))
        except Exception as e:
            logger.error(
                "Unexpected exception processing message from queue {}".format(
                    queue.url))
            logger.exception(e)