def test_handle_no_email_attachments(self): import datetime from repoze.bfg.testing import DummyModel from karl.content.interfaces import IBlogEntry self._set_NOW(datetime.datetime(2009, 01, 28, 10, 00, 00)) self._registerFactory(IBlogEntry, _makeBlogEntryClass()) self._registerContextURL() self._registerSettings() alerts = self._registerAlerts() workflow = self._registerSecurityWorkflow() context = DummyModel() adapter = self._makeOne(context) message = object() # ignored info = {'subject': 'SUBJECT', 'author': 'phreddy', 'date': datetime.datetime(2010, 5, 12, 2, 42)} adapter.handle(message, info, 'TEXT', []) self.assertEqual(len(context), 1) entry_id, entry = context.items()[0] self.assertEqual(entry_id, 'subject') self.assertEqual(entry.title, 'SUBJECT') self.assertEqual(entry.creator, 'phreddy') self.assertEqual(entry.text, 'TEXT') self.assertEqual(entry.description, 'TEXT') self.assertEqual(entry.created, datetime.datetime(2010, 5, 12, 2, 42)) self.failIf(len(entry['attachments'])) self.assertEqual(len(alerts.emissions), 1) self.assertEqual(alerts.emissions, [(entry, 'http://offline.example.com/app/subject')]) self.failUnless(workflow.initialized)
def test_handle_with_email_attachments_w_entry_attachments(self): import datetime from repoze.bfg.testing import DummyModel from karl.content.interfaces import IBlogEntry from karl.content.interfaces import ICommunityFile self._set_NOW(datetime.datetime(2009, 01, 28, 10, 00, 00)) self._registerFactory(IBlogEntry, _makeBlogEntryClass()) self._registerFactory(ICommunityFile) self._registerContextURL() self._registerSettings() alerts = self._registerAlerts() workflow = self._registerSecurityWorkflow() context = DummyModel() adapter = self._makeOne(context) message = object() # ignored info = {'subject': 'SUBJECT', 'author': 'phreddy', 'date': datetime.datetime(2010, 5, 12, 2, 42)} attachments = [('file1.bin', 'application/octet-stream', 'DATA'), ('file2.png', 'image/png', 'IMAGE'), ] adapter.handle(message, info, 'TEXT', attachments) self.assertEqual(len(context), 1) entry_id, entry = context.items()[0] self.assertEqual(entry_id, 'subject') self.assertEqual(entry.title, 'SUBJECT') self.assertEqual(entry.creator, 'phreddy') self.assertEqual(entry.text, 'TEXT') attachments = entry['attachments'] self.assertEqual(len(attachments), 2) file1 = attachments['file1.bin'] self.assertEqual(file1.title, 'file1.bin') self.assertEqual(file1.filename, 'file1.bin') self.assertEqual(file1.mimetype, 'application/octet-stream') self.assertEqual(file1.stream.read(), 'DATA') file2 = attachments['file2.png'] self.assertEqual(file2.title, 'file2.png') self.assertEqual(file2.filename, 'file2.png') self.assertEqual(file2.mimetype, 'image/png') self.assertEqual(file2.stream.read(), 'IMAGE') self.assertEqual(len(alerts.emissions), 1) self.assertEqual(alerts.emissions, [(entry, 'http://offline.example.com/app/subject')]) self.failUnless(workflow.initialized)