def test_message_writer_unicode(self): from repoze.sendmail.maildir import MaildirMessageWriter filename1 = '/path/to/maildir/tmp/1234500002.4242.myhostname' filename2 = '/path/to/maildir/new/1234500002.4242.myhostname' fd = FakeFile(filename1, 'w') writer = MaildirMessageWriter(fd, filename1, filename2) self.assertEquals(writer._fd._filename, filename1) self.assertEquals(writer._fd._mode, 'w') # TODO or 'wb'? print >> writer, u'fe\xe8', writer.write(u' fi\xe8') writer.writelines([u' fo\xe8', u' fo\xf2']) self.assertEquals(writer._fd._written, 'fe\xc3\xa8 fi\xc3\xa8 fo\xc3\xa8 fo\xc3\xb2')
def test_message_writer_and_abort(self): from repoze.sendmail.maildir import MaildirMessageWriter filename1 = '/path/to/maildir/tmp/1234500002.4242.myhostname' filename2 = '/path/to/maildir/new/1234500002.4242.myhostname' fd = FakeFile(filename1, 'w') writer = MaildirMessageWriter(fd, filename1, filename2) self.assertEquals(writer._fd._filename, filename1) self.assertEquals(writer._fd._mode, 'w') # TODO or 'wb'? print >> writer, 'fee', writer.write(' fie') writer.writelines([' foe', ' foo']) self.assertEquals(writer._fd._written, 'fee fie foe foo') writer.abort() self.assertEquals(writer._fd._closed, True) self.assert_(filename1 in self.fake_os_module._removed_files) # Once aborted, abort does nothing self.fake_os_module._removed_files = () writer.abort() writer.abort() self.assertEquals(self.fake_os_module._removed_files, ()) # Once aborted, commit fails self.assertRaises(RuntimeError, writer.commit)
def test_message_writer_commit(self): from repoze.sendmail.maildir import MaildirMessageWriter filename1 = '/path/to/maildir/tmp/1234500002.4242.myhostname' filename2 = '/path/to/maildir/new/1234500002.4242.myhostname' fd = FakeFile(filename1, 'w') writer = MaildirMessageWriter(fd, filename1, filename2) writer.commit() self.assertEquals(writer._fd._closed, True) self.assert_((filename1, filename2) in self.fake_os_module._renamed_files) # Once commited, commit does nothing self.fake_os_module._renamed_files = () writer.commit() writer.commit() self.assertEquals(self.fake_os_module._renamed_files, ()) # Once commited, abort does nothing writer.abort() writer.abort() self.assertEquals(self.fake_os_module._renamed_files, ())