コード例 #1
0
    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)
コード例 #2
0
 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.'))
コード例 #3
0
ファイル: delivery.py プロジェクト: derFreitag/zope.sendmail
 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)
コード例 #4
0
 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)
コード例 #5
0
 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.'))
コード例 #6
0
    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)
コード例 #7
0
 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()
コード例 #8
0
 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'
     ])
コード例 #9
0
    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
コード例 #10
0
 def setQueuePath(self, path):
     self.maildir = Maildir(path, True)
コード例 #11
0
 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)
コード例 #12
0
 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.'))