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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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(['*****@*****.**', '*****@*****.**']))
Exemplo n.º 5
0
    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(['*****@*****.**', '*****@*****.**']))
Exemplo n.º 8
0
    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(['*****@*****.**', '*****@*****.**']))
Exemplo n.º 9
0
    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(['*****@*****.**']))
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
 def test_no_recipients(self):
     email = g_email(recipients=[], context={})
     addresses = get_subscribed_email_addresses(email)
     self.assertEqual(addresses, [])
 def test_no_recipients(self):
     email = g_email(recipients=[], context={})
     addresses = get_subscribed_email_addresses(email)
     self.assertEqual(addresses, [])