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 __init__(self, title, text, description, creator):
     DummyModel.__init__(self,
                         title=title,
                         text=text,
                         description=description,
                         creator=creator)
     self['attachments'] = DummyModel()
Esempio n. 3
0
 def __init__(self, *args, **kw):
     DummyModel.__init__(self)
     for item in kw.items():
         setattr(self, item[0], item[1])
     self._alert_prefs = {}
     self._pending_alerts = []
     if 'security_state' not in kw:
         self.security_state = 'active'
Esempio n. 4
0
 def _makeModel(self, name=None, parent=None, principals=('phreddy',)):
     from repoze.bfg.testing import DummyModel
     model = DummyModel()
     if parent is not None:
         parent[name] = model
     if principals:
         model.__acl__ = [self._makeACE(principal=x) for x in principals]
     return model
Esempio n. 5
0
 def __init__(self):
     DummyModel.__init__(self)
     self[u'profiles'] = DummyModel()
     dummies = [
         (u'dummy1', u'Dummy One'),
         (u'dummy2', u'Dummy Two'),
         (u'dummy3', u'Dummy Three'),
         ]
     for dummy in dummies:
         self[u'profiles'][0] = DummyModel(title=dummy[1])
     self[u'communities'] = DummyModel()
Esempio n. 6
0
 def test_submitted_success(self):
     self._registerFactory()
     request = DummyRequest(
         params=MultiDict({"form.submitted": "1", "title": "title", "description": "abc", "tags": "thetesttag"})
     )
     context = DummyModel()
     context.catalog = DummyCatalog()
     response = self._callFUT(context, request)
     self.assertEqual(response.location, "http://example.com/title/")
     self.assertEqual(context["title"].title, "title")
     self.assertEqual(context["title"].description, "abc")
     self.assertEqual(context["title"].creator, None)
Esempio n. 7
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)
Esempio n. 8
0
 def __init__(self):
     DummyModel.__init__(self)
     root = DummyRoot()
     root["communities"]["community"] = self
Esempio n. 9
0
 def __init__(self, *args, **kw):
     DummyModel.__init__(self)
     for item in kw.items():
         setattr(self, item[0], item[1])
     self._alert_prefs = {}
     self._pending_alerts = []