diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 871b0cc..1b0da89 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -15,7 +15,6 @@ import email import logging import mimetypes import os.path -import sys import uuid from tempfile import NamedTemporaryFile @@ -42,7 +41,7 @@ class MailboxQuerySet(models.QuerySet): for mailbox in self.all(): logger.debug('Receiving mail for %s' % mailbox) count += sum(1 for i in mailbox.get_new_mail()) - logger.debug('Received %d %s.', count, 'mails' if count != 1 else 'mail') + logger.debug('Received %d %s.', count, 'mail(s)') class MailboxManager(models.Manager): @@ -123,6 +122,13 @@ class Mailbox(models.Model): objects = MailboxManager() active_mailboxes = ActiveMailboxManager() + class Meta: + verbose_name = _('Mailbox') + verbose_name_plural = _('Mailboxes') + + def __str__(self): + return self.name + @property def _protocol_info(self): return urlparse(self.uri) @@ -448,13 +454,12 @@ class Mailbox(models.Model): def get_new_mail(self, condition=None): """Connect to this transport and fetch new messages.""" - new_mail = [] connection = self.get_connection() if not connection: return for message in connection.get_message(condition): msg = self.process_incoming_message(message) - if not msg is None: + if msg is not None: yield msg self.last_polling = now() if django.VERSION >= (1, 5): # Django 1.5 introduces update_fields @@ -483,14 +488,6 @@ class Mailbox(models.Model): ) - def __str__(self): - return self.name - - class Meta: - verbose_name = _('Mailbox') - verbose_name_plural = _('Mailboxes') - - class IncomingMessageManager(models.Manager): def get_queryset(self): return super().get_queryset().filter( @@ -757,7 +754,7 @@ class Message(models.Model): """Returns an `email.message.EmailMessage` instance representing the contents of this message and all attachments. - See [email.message.EmailMessage]_ for more information as to what methods + See [email.message.EmailMessage]_ for more information like what methods and properties are available on `email.message.EmailMessage` instances. .. note:: diff --git a/django_mailbox/tests/test_process_email.py b/django_mailbox/tests/test_process_email.py index 4369b01..874da0a 100644 --- a/django_mailbox/tests/test_process_email.py +++ b/django_mailbox/tests/test_process_email.py @@ -1,6 +1,5 @@ import gzip import os.path -import sys import copy from unittest import mock @@ -423,7 +422,7 @@ class TestProcessEmail(EmailMessageTestCase): msg = self.mailbox.process_incoming_message(message) - actual_email_object = msg.get_email_object() + # actual_email_object = msg.get_email_object() self.assertTrue(msg.eml.name.endswith('.eml.gz')) diff --git a/django_mailbox/tests/test_processincomingmessage.py b/django_mailbox/tests/test_processincomingmessage.py index 22cd10a..bfb54fd 100644 --- a/django_mailbox/tests/test_processincomingmessage.py +++ b/django_mailbox/tests/test_processincomingmessage.py @@ -2,26 +2,25 @@ from unittest import mock from django.core.management import call_command, CommandError from django.test import TestCase -import django + class CommandsTestCase(TestCase): def test_processincomingmessage_no_args(self): """Check that processincomingmessage works with no args""" - + mailbox_name = None # Mock handle so that the test doesn't hang waiting for input. Note that we are only testing # the argument parsing here -- functionality should be tested elsewhere with mock.patch('django_mailbox.management.commands.processincomingmessage.Command.handle') as handle: # Don't care about the return value handle.return_value = None - + call_command('processincomingmessage') args, kwargs = handle.call_args # Make sure that we called with the right arguments self.assertEqual(kwargs['mailbox_name'], mailbox_name) - def test_processincomingmessage_with_arg(self): """Check that processincomingmessage works with mailbox_name given""" @@ -29,7 +28,7 @@ class CommandsTestCase(TestCase): with mock.patch('django_mailbox.management.commands.processincomingmessage.Command.handle') as handle: handle.return_value = None - + call_command('processincomingmessage', mailbox_name) args, kwargs = handle.call_args diff --git a/django_mailbox/tests/test_transports.py b/django_mailbox/tests/test_transports.py index 403a306..732efbe 100644 --- a/django_mailbox/tests/test_transports.py +++ b/django_mailbox/tests/test_transports.py @@ -8,7 +8,7 @@ from django_mailbox.transports import ImapTransport, Pop3Transport FAKE_UID_SEARCH_ANSWER = ( 'OK', [ - b'18 19 20 21 22 23 24 25 26 27 28 29 ' + + b'18 19 20 21 22 23 24 25 26 27 28 29 ' + b'30 31 32 33 34 35 36 37 38 39 40 41 42 43 44' ] ) diff --git a/django_mailbox/transports/base.py b/django_mailbox/transports/base.py index a3a2bc0..a90af9f 100644 --- a/django_mailbox/transports/base.py +++ b/django_mailbox/transports/base.py @@ -9,4 +9,3 @@ class EmailTransport: message = email.message_from_bytes(contents) return message - diff --git a/django_mailbox/transports/generic.py b/django_mailbox/transports/generic.py index 5832fda..cdb4b38 100644 --- a/django_mailbox/transports/generic.py +++ b/django_mailbox/transports/generic.py @@ -1,4 +1,4 @@ -import sys + from .base import EmailTransport diff --git a/django_mailbox/transports/office365.py b/django_mailbox/transports/office365.py index 4f748b2..26d074a 100644 --- a/django_mailbox/transports/office365.py +++ b/django_mailbox/transports/office365.py @@ -63,4 +63,3 @@ class Office365Transport(EmailTransport): o365message.delete() return -