forked from mirror/django-mailbox
Adding a more-versatile condition-handling method for preventing integration tests from mashing on one another.
This commit is contained in:
parent
3e1f6b9909
commit
988cb7504f
6 changed files with 17 additions and 17 deletions
|
|
@ -55,12 +55,12 @@ class EmailMessageTestCase(TestCase):
|
|||
settings.EMAIL_USE_TLS = True
|
||||
super(EmailMessageTestCase, self).setUp()
|
||||
|
||||
def _get_new_messages(self, mailbox):
|
||||
def _get_new_messages(self, mailbox, condition=None):
|
||||
maximum_wait = time.time() + self.maximum_wait_seconds
|
||||
while True:
|
||||
if time.time() > maximum_wait:
|
||||
raise EmailIntegrationTimeout()
|
||||
messages = self.mailbox.get_new_mail()
|
||||
messages = self.mailbox.get_new_mail(condition)
|
||||
if messages:
|
||||
return messages
|
||||
time.sleep(5)
|
||||
|
|
|
|||
|
|
@ -24,12 +24,6 @@ class TestImap(EmailMessageTestCase):
|
|||
uri=self.get_connection_string()
|
||||
)
|
||||
self.arbitrary_identifier = str(uuid.uuid4())
|
||||
settings.DJANGO_MAILBOX_INTEGRATION_TESTING_SUBJECT = (
|
||||
self.arbitrary_identifier
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
settings.DJANGO_MAILBOX_INTEGRATION_TESTING_SUBJECT = None
|
||||
|
||||
def get_connection_string(self):
|
||||
return "imap+ssl://{account}:{password}@{server}".format(
|
||||
|
|
@ -50,7 +44,10 @@ class TestImap(EmailMessageTestCase):
|
|||
)
|
||||
msg.send()
|
||||
|
||||
messages = self._get_new_messages(self.mailbox)
|
||||
messages = self._get_new_messages(
|
||||
self.mailbox,
|
||||
condition=lambda m: m['subject'] == self.arbitrary_identifier
|
||||
)
|
||||
|
||||
self.assertEqual(1, len(messages))
|
||||
self.assertEqual(messages[0].subject, self.arbitrary_identifier)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue