def test_factory(self): from zope.sendmail.interfaces import IMaildirFactory, IMaildir from zope.sendmail.maildir import Maildir verifyObject(IMaildirFactory, Maildir) # Case 1: normal maildir m = Maildir('/path/to/maildir') verifyObject(IMaildir, m) # Case 2a: directory does not exist, create = False self.assertRaises(ValueError, Maildir, '/path/to/nosuchfolder', False) # Case 2b: directory does not exist, create = True m = Maildir('/path/to/nosuchfolder', True) verifyObject(IMaildir, m) dirs = list(self.fake_os_module._made_directories) dirs.sort() self.assertEquals(dirs, [ '/path/to/nosuchfolder', '/path/to/nosuchfolder/cur', '/path/to/nosuchfolder/new', '/path/to/nosuchfolder/tmp' ]) # Case 3: it is a file, not a directory self.assertRaises(ValueError, Maildir, '/path/to/regularfile', False) self.assertRaises(ValueError, Maildir, '/path/to/regularfile', True) # Case 4: it is a directory, but not a maildir self.assertRaises(ValueError, Maildir, '/path/to/emptydirectory', False) self.assertRaises(ValueError, Maildir, '/path/to/emptydirectory', True)
def test_newMessage(self): from zope.sendmail.maildir import Maildir from zope.sendmail.interfaces import IMaildirMessageWriter m = Maildir('/path/to/maildir') fd = m.newMessage() verifyObject(IMaildirMessageWriter, fd) self.assertTrue(fd._filename.startswith( '/path/to/maildir/tmp/1234500002.4242.myhostname.'))
def createDataManager(self, fromaddr, toaddrs, message): maildir = Maildir(self.queuePath, True) msg = maildir.newMessage() msg.write('X-Zope-From: %s\n' % fromaddr) msg.write('X-Zope-To: %s\n' % ", ".join(toaddrs)) msg.write(message) msg.close() return MailDataManager(msg.commit, onAbort=msg.abort)
def test_newMessage(self): from zope.sendmail.maildir import Maildir from zope.sendmail.interfaces import IMaildirMessageWriter m = Maildir('/path/to/maildir') fd = m.newMessage() verifyObject(IMaildirMessageWriter, fd) self.assert_( fd._filename.startswith( '/path/to/maildir/tmp/1234500002.4242.myhostname.'))
def test_newMessage_error(self): m = Maildir('/path/to/maildir') def open(*args): raise OSError(errno.EADDRINUSE, "") self.fake_os_module.open = open with self.assertRaises(OSError) as exc: m.newMessage() self.assertEqual(exc.exception.errno, errno.EADDRINUSE)
def setUp(self): from zope.sendmail.delivery import QueuedMailDelivery from zope.sendmail.maildir import Maildir self.dir = mkdtemp() self.queue_dir = os.path.join(self.dir, "queue") self.delivery = QueuedMailDelivery(self.queue_dir) self.maildir = Maildir(self.queue_dir, True) self.mailer = MailerStub()
def test_iteration(self): from zope.sendmail.maildir import Maildir m = Maildir('/path/to/maildir') messages = list(m) self.assertEquals(messages, [ '/path/to/maildir/cur/2', '/path/to/maildir/cur/1', '/path/to/maildir/new/2', '/path/to/maildir/new/1' ])
def queueLength(self): """ return length of mail queue """ try: maildir = Maildir(self.smtp_queue_directory) return len([item for item in maildir]) except ValueError: return 'n/a - %s is not a maildir - please verify your ' \ 'configuration' % self.smtp_queue_directory
def setQueuePath(self, path): self.maildir = Maildir(path, True)
def test_newMessage_never_loops(self): from zope.sendmail.maildir import Maildir from zope.sendmail.interfaces import IMaildirMessageWriter self.fake_os_module._all_files_exist = True m = Maildir('/path/to/maildir') self.assertRaises(RuntimeError, m.newMessage)
def test_newMessage(self): m = Maildir('/path/to/maildir') fd = m.newMessage() verifyObject(IMaildirMessageWriter, fd) self.assertTrue(fd._filename.startswith( '/path/to/maildir/tmp/1234500002.4242.myhostname.'))