Merge pull request #991 from stockr-labs/feature/email-backends-generators

Fixed #20194 -- Adds generators support for email backends that do not support it.
This commit is contained in:
Alex Gaynor 2013-07-07 16:43:24 -07:00
commit 5ac7f777cd
3 changed files with 7 additions and 3 deletions

View File

@ -16,6 +16,7 @@ class EmailBackend(BaseEmailBackend):
"""Write all messages to the stream in a thread-safe way."""
if not email_messages:
return
msg_count = 0
with self._lock:
try:
stream_created = self.open()
@ -24,9 +25,10 @@ class EmailBackend(BaseEmailBackend):
self.stream.write('-' * 79)
self.stream.write('\n')
self.stream.flush() # flush after each message
msg_count += 1
if stream_created:
self.close()
except:
if not self.fail_silently:
raise
return len(email_messages)
return msg_count

View File

@ -6,4 +6,4 @@ from django.core.mail.backends.base import BaseEmailBackend
class EmailBackend(BaseEmailBackend):
def send_messages(self, email_messages):
return len(email_messages)
return len(list(email_messages))

View File

@ -20,7 +20,9 @@ class EmailBackend(BaseEmailBackend):
def send_messages(self, messages):
"""Redirect messages to the dummy outbox"""
msg_count = 0
for message in messages: # .message() triggers header validation
message.message()
msg_count += 1
mail.outbox.extend(messages)
return len(messages)
return msg_count