Пример #1
0
    def test_handle_no_email_attachments(self):
        import datetime
        from pyramid.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()
        root = makeRoot()
        root["foo"] = context
        context.__parent__ = root
        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.failUnless(workflow.initialized)
Пример #2
0
    def test_handle_with_email_attachments_w_entry_attachments(self):
        import datetime
        from pyramid.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()
        root = makeRoot()
        root['foo'] = context
        context.__parent__ = root
        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.failUnless(workflow.initialized)
Пример #3
0
    def test_handle_with_email_attachments_w_entry_attachments(self):
        import datetime
        from pyramid.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()
        root = makeRoot()
        root["foo"] = context
        context.__parent__ = root
        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.failUnless(workflow.initialized)
Пример #4
0
    def test_handle_no_email_attachments(self):
        import datetime
        from pyramid.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()
        root = makeRoot()
        root['foo'] = context
        context.__parent__ = root
        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.failUnless(workflow.initialized)