def test_returns_own_email(self): entity_1 = G(Entity, entity_meta={'email': '*****@*****.**'}) entity_2 = G(Entity, entity_meta={'email': '*****@*****.**'}) email = g_email(recipients=[entity_1, entity_2], context={}) addresses = get_subscribed_email_addresses(email) expected_addresses = {u'*****@*****.**', u'*****@*****.**'} self.assertEqual(set(addresses), expected_addresses)
def send_unsent_scheduled_emails(): """ Send out any scheduled emails that are unsent """ current_time = datetime.utcnow() email_medium = get_medium() to_send = Email.objects.filter( scheduled__lte=current_time, sent__isnull=True).select_related( 'event').prefetch_related('recipients') # Fetch the contexts of every event so that they may be rendered context_loader.load_contexts_and_renderers([e.event for e in to_send], [email_medium]) emails = [] for email in to_send: to_email_addresses = get_subscribed_email_addresses(email) if to_email_addresses: text_message, html_message = email.render(email_medium) message = create_email_message( to_emails=to_email_addresses, from_email=email.from_address or get_from_email_address(), subject=email.subject or extract_email_subject_from_html_content(html_message), text=text_message, html=html_message, ) emails.append(message) connection = mail.get_connection() connection.send_messages(emails) to_send.update(sent=current_time)
def test_get_emails_override_email_key_exclude_key(self): e1 = G(Entity, entity_meta={'email_address': '*****@*****.**'}) e2 = G(Entity, entity_meta={'email_address': '*****@*****.**'}) email = g_email(recipients=[e1, e2], context={}) addresses = get_subscribed_email_addresses(email) self.assertEqual(set(addresses), set(['*****@*****.**', '*****@*****.**']))
def test_get_emails_override_email_key(self): e1 = G(Entity, entity_meta={'email_address': '*****@*****.**', 'last_invite_time': 1000}) e2 = G(Entity, entity_meta={'email_address': '*****@*****.**', 'last_invite_time': None}) e3 = G(Entity, entity_meta={'email_address': '*****@*****.**', 'last_invite_time': False}) email = g_email(recipients=[e1, e2, e3], context={}) addresses = get_subscribed_email_addresses(email) self.assertEqual(set(addresses), set(['*****@*****.**']))
def test_get_emails_default_settings(self): e1 = G(Entity, entity_meta={'email': '*****@*****.**'}) e2 = G(Entity, entity_meta={'email': '*****@*****.**'}) e3 = G(Entity, entity_meta={'email': ''}) e4 = G(Entity, entity_meta={}) email = g_email(recipients=[e1, e2, e3, e4], context={}) addresses = get_subscribed_email_addresses(email) self.assertEqual(set(addresses), set(['*****@*****.**', '*****@*****.**']))
def test_get_emails_override_email_key(self): e1 = G(Entity, entity_meta={ 'email_address': '*****@*****.**', 'last_invite_time': 1000 }) e2 = G(Entity, entity_meta={ 'email_address': '*****@*****.**', 'last_invite_time': None }) e3 = G(Entity, entity_meta={ 'email_address': '*****@*****.**', 'last_invite_time': False }) email = g_email(recipients=[e1, e2, e3], context={}) addresses = get_subscribed_email_addresses(email) self.assertEqual(set(addresses), set(['*****@*****.**']))
def send_unsent_scheduled_emails(): """ Send out any scheduled emails that are unsent """ current_time = datetime.utcnow() email_medium = get_medium() to_send = Email.objects.filter( scheduled__lte=current_time, sent__isnull=True ).select_related( 'event' ).prefetch_related( 'recipients' ) # Fetch the contexts of every event so that they may be rendered context_loader.load_contexts_and_renderers([e.event for e in to_send], [email_medium]) emails = [] for email in to_send: to_email_addresses = get_subscribed_email_addresses(email) if to_email_addresses: text_message, html_message = email.render(email_medium) message = create_email_message( to_emails=to_email_addresses, from_email=email.from_address or get_from_email_address(), subject=email.subject or extract_email_subject_from_html_content(html_message), text=text_message, html=html_message, ) emails.append(message) connection = mail.get_connection() connection.send_messages(emails) to_send.update(sent=current_time)
def test_no_recipients(self): email = g_email(recipients=[], context={}) addresses = get_subscribed_email_addresses(email) self.assertEqual(addresses, [])