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 __init__(self, title, text, description, creator): DummyModel.__init__(self, title=title, text=text, description=description, creator=creator) self['attachments'] = DummyModel()
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'
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
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()
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)
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)
def __init__(self): DummyModel.__init__(self) root = DummyRoot() root["communities"]["community"] = self
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 = []