def setUp(self): self.serialized = '{"body": "test body", "to": ["*****@*****.**"],' \ ' "connection": "django.core.mail.backends.smtp.EmailBackend",' \ ' "attachments": ["/path/to/file"], "bcc": ["*****@*****.**"], "cc": ["*****@*****.**"],' \ ' "headers": {"Extra-Header": "extra-value"}, "from_email": "*****@*****.**",' \ ' "subject": "test subject"}' unserializer = load_object(django_gearman_proxy.settings.GEARMAN_EMAIL_UNSERIALIZER) self.email_message = unserializer(self.serialized)
def setUp(self): self.serialized = '{"body": "sms body", "to": ["0002", "0003"], ' \ '"connection": "sendsms.backends.smssluzbacz.SmsBackend", "flash": true, ' \ '"from_phone": "0001"}' unserializer = load_object(django_gearman_proxy.settings.GEARMAN_SMS_UNSERIALIZER) self.sms_message = unserializer(self.serialized)
def setUp(self): self.sms_message = SmsMessage('sms body', from_phone='0001', to=['0002', '0003'], flash=True) serializer = load_object(django_gearman_proxy.settings.GEARMAN_SMS_SERIALIZER) self.serialized = json.loads(serializer(self.sms_message))
import json import unittest from sendsms.message import SmsMessage import django_gearman_proxy.settings django_gearman_proxy.settings.GEARMAN_SMS_BACKEND = 'sendsms.backends.smssluzbacz.SmsBackend' django_gearman_proxy.settings.GEARMAN_SMS_SERIALIZER = 'django_gearman_proxy.serializers.sms.json.serialize' django_gearman_proxy.settings.GEARMAN_SMS_UNSERIALIZER = 'django_gearman_proxy.serializers.sms.json.unserialize' from django_gearman_proxy import load_object SmsBackend = load_object(django_gearman_proxy.settings.GEARMAN_SMS_BACKEND) class TestSmsJsonSerializer(unittest.TestCase): def setUp(self): self.sms_message = SmsMessage('sms body', from_phone='0001', to=['0002', '0003'], flash=True) serializer = load_object(django_gearman_proxy.settings.GEARMAN_SMS_SERIALIZER) self.serialized = json.loads(serializer(self.sms_message)) def test_serialize(self): self.assertIsInstance(self.serialized, dict) self.assertEqual(self.serialized['body'], 'sms body') self.assertEqual(self.serialized['from_phone'], '0001') self.assertEqual(self.serialized['to'], ['0002', '0003']) self.assertTrue(self.serialized['flash']) self.assertEqual(self.serialized['connection'], django_gearman_proxy.settings.GEARMAN_SMS_BACKEND) class TestSmsJsonUnserializer(unittest.TestCase):
from sendsms.backends.base import BaseSmsBackend from django_gearman_commands import submit_job from django.core.management import load_command_class import django_gearman_proxy.settings from django_gearman_proxy import load_object PROXY_TASK_NAME = load_command_class('django_gearman_proxy', 'send_sms').task_name SERIALIZER = load_object(django_gearman_proxy.settings.GEARMAN_SMS_SERIALIZER) class SmsBackend(BaseSmsBackend): def send_messages(self, messages): """ :param messages: list of sendsms.message.SmsMessage objects. :type messages: list :return: number of successfully submitted send_sms jobs :rtype: int """ sent = 0 for msg in messages: try: submit_job(PROXY_TASK_NAME, data=SERIALIZER(msg)) sent += 1 except Exception: if not self.fail_silently:
import logging from django_gearman_commands import GearmanWorkerBaseCommand import django_gearman_proxy.settings from django_gearman_proxy import load_object log = logging.getLogger(__name__) UNSERIALIZER = load_object( django_gearman_proxy.settings.GEARMAN_EMAIL_UNSERIALIZER) class Command(GearmanWorkerBaseCommand): @property def task_name(self): return 'send_mail' def do_job(self, job_data): to_return = False try: email_message = UNSERIALIZER(job_data) log.info('Sending mail message to "%s"', email_message.to) to_return = email_message.send() except Exception: log.exception('Error while sending mail message with data: %s', job_data) return to_return
def setUp(self): self.email_message = EmailMessage(subject=u'test subject', body=u'test body', from_email='*****@*****.**', to=['*****@*****.**'], bcc=['*****@*****.**'], attachments=['/path/to/file'], headers={'Extra-Header': 'extra-value'}, cc=['*****@*****.**']) serializer = load_object(django_gearman_proxy.settings.GEARMAN_EMAIL_SERIALIZER) self.serialized = json.loads(serializer(self.email_message))
import json import unittest from django.core.mail.message import EmailMessage import django_gearman_proxy.settings django_gearman_proxy.settings.GEARMAN_EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' django_gearman_proxy.settings.GEARMAN_EMAIL_SERIALIZER = 'django_gearman_proxy.serializers.mail.json.serialize' django_gearman_proxy.settings.GEARMAN_EMAIL_UNSERIALIZER = 'django_gearman_proxy.serializers.mail.json.unserialize' from django_gearman_proxy import load_object EmailBackend = load_object(django_gearman_proxy.settings.GEARMAN_EMAIL_BACKEND) class TestMailJsonSerializer(unittest.TestCase): def setUp(self): self.email_message = EmailMessage(subject=u'test subject', body=u'test body', from_email='*****@*****.**', to=['*****@*****.**'], bcc=['*****@*****.**'], attachments=['/path/to/file'], headers={'Extra-Header': 'extra-value'}, cc=['*****@*****.**']) serializer = load_object(django_gearman_proxy.settings.GEARMAN_EMAIL_SERIALIZER) self.serialized = json.loads(serializer(self.email_message)) def test_serialize(self): self.assertIsInstance(self.serialized, dict) self.assertEqual(self.serialized['subject'], u'test subject') self.assertEqual(self.serialized['body'], u'test body') self.assertEqual(self.serialized['from_email'], '*****@*****.**') self.assertEqual(self.serialized['to'], ['*****@*****.**']) self.assertEqual(self.serialized['bcc'], ['*****@*****.**']) self.assertEqual(self.serialized['attachments'], ['/path/to/file'])
import logging from django_gearman_commands import GearmanWorkerBaseCommand import django_gearman_proxy.settings from django_gearman_proxy import load_object log = logging.getLogger(__name__) UNSERIALIZER = load_object(django_gearman_proxy.settings.GEARMAN_EMAIL_UNSERIALIZER) class Command(GearmanWorkerBaseCommand): @property def task_name(self): return 'send_mail' def do_job(self, job_data): to_return = False try: email_message = UNSERIALIZER(job_data) log.info('Sending mail message to "%s"', email_message.to) to_return = email_message.send() except Exception: log.exception('Error while sending mail message with data: %s', job_data) return to_return