diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 09b62fb..2a8f77d 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -408,17 +408,16 @@ class Mailbox(models.Model): new_mail = [] connection = self.get_connection() if not connection: - return new_mail + return for message in connection.get_message(condition): msg = self.process_incoming_message(message) if not msg is None: - new_mail.append(msg) + yield msg self.last_polling = now() if django.VERSION >= (1, 5): # Django 1.5 introduces update_fields self.save(update_fields=['last_polling']) else: self.save() - return new_mail def __str__(self): return self.name diff --git a/django_mailbox/tests/base.py b/django_mailbox/tests/base.py index 5553aa1..491f937 100644 --- a/django_mailbox/tests/base.py +++ b/django_mailbox/tests/base.py @@ -66,7 +66,7 @@ class EmailMessageTestCase(TestCase): raise EmailIntegrationTimeout() messages = self.mailbox.get_new_mail(condition) if messages: - return messages + return list(messages) time.sleep(5) def _get_email_as_text(self, name): diff --git a/django_mailbox/tests/test_mailbox.py b/django_mailbox/tests/test_mailbox.py index 10fa904..b55e70c 100644 --- a/django_mailbox/tests/test_mailbox.py +++ b/django_mailbox/tests/test_mailbox.py @@ -32,5 +32,5 @@ class TestMailbox(TestCase): 'generic_message.eml', )) self.assertEqual(mailbox.last_polling, None) - mailbox.get_new_mail() + list(mailbox.get_new_mail()) self.assertNotEqual(mailbox.last_polling, None)