Esempio n. 1
0
    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)
Esempio n. 2
0
    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)