Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

A Django app for sending SMS with interchangable backends.

Project description

A Django app for sending SMS with interchangable backends.

Requirements

Required

  • Python 2.5+

  • Django 1.2+

Backends

  • ‘sms.backends.dummy.SMSBackend’

  • ‘sms.backends.locmem.SMSBackend’

  • ‘sms.backends.console.SMSBackend’

Writing a custom backend

You can write your own SMS backend by subclassing BaseSMSBackend and overriding the send_sms method. On any error, your backend should raise SMSError

class SMSBackend(BaseSMSBackend):
    """
    My custom sms backend

    """
    def __init__(self):
        self.client = MyClient(settings.KEY, settings.SECRET)

    def send_sms(self, message, from_, to):
        if not self.client.send_message(message, from_, to):
            raise SMSError

Usage

  1. Add an SMS backend to SMS_BACKEND in settings.py.

SMS_BACKEND = 'sms.backends.console.SMSBackend'
  1. call send_sms

from sms import send_sms

send_sms(text, from_, to)

Testing

sms.original_sms_backend = settings.SMS_BACKEND
settings.SMS_BACKEND = 'sms.backends.locmem.SMSBackend'
sms.outbox = []

sms.send_sms('my message', 'me', 'you')
self.assertIn('message', sms.outbox[0]['text'])

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page