def test_form_defaults(self): context = self.context context.text = 'text' context.caption = 'caption' from karl.content.views.newsitem import _now now = _now() context.publication_date = now attachment1 = DummyFile(mimetype="text/plain") attachment2 = DummyFile(mimetype="text/html") context['attachments']['test1.txt'] = attachment1 context['attachments']['test2.html'] = attachment2 photo = DummyFile(mimetype='image/jpeg') context['photo'] = photo controller = self._makeOne(context, self.request) defaults = controller.form_defaults() self.assertEqual(defaults['title'], 'Foo') self.assertEqual(defaults['text'], 'text') self.assertEqual(defaults['caption'], 'caption') self.assertEqual(defaults['publication_date'], now) self.assertEqual(len(defaults['attachments']), 2) attachnames = [a.filename for a in defaults['attachments']] self.failUnless('test1.txt' in attachnames) self.failUnless('test2.html' in attachnames) self.assertEqual(defaults['photo'].filename, 'photo') self.assertEqual(defaults['photo'].mimetype, 'image/jpeg')
def test_handle_submit(self): from karl.models.interfaces import ISite from zope.interface import directlyProvides site = testing.DummyModel(sessions=DummySessions()) directlyProvides(site, ISite) from karl.testing import DummyCatalog from karl.models.adapters import CatalogSearch from karl.models.interfaces import ICatalogSearch from zope.interface import Interface site.catalog = DummyCatalog() karl.testing.registerAdapter(CatalogSearch, (Interface), ICatalogSearch) context = self.context site['newsfolder'] = context tags = DummyTags() site.tags = tags controller = self._makeOne(context, self.request) from karl.content.views.newsitem import _now from karl.testing import DummyUpload attachment1 = DummyUpload(filename='test1.txt') attachment2 = DummyUpload(filename=r'C:\My Documents\Ha Ha\test2.txt') photo = DummyUpload(filename='test.jpg', mimetype='image/jpeg', data=dummy_photo) now = _now() converted = { 'title': 'Foo', 'text': 'text', 'publication_date': now, 'caption': 'caption', 'tags': ['tag1', 'tag2'], 'attachments': [attachment1, attachment2], 'photo': photo } from karl.content.interfaces import INewsItem from karl.content.interfaces import ICommunityFile from repoze.lemonade.testing import registerContentFactory registerContentFactory(DummyNewsItem, INewsItem) registerContentFactory(DummyFile, ICommunityFile) response = controller.handle_submit(converted) newsitem_url = 'http://example.com/newsfolder/foo/' self.assertEqual(response.location, newsitem_url) self.failUnless('foo' in context) newsitem = context['foo'] self.assertEqual(newsitem.title, 'Foo') self.assertEqual(newsitem.text, 'text') self.assertEqual(newsitem.publication_date, now) self.assertEqual(newsitem.caption, 'caption') self.failUnless('attachments' in newsitem) attachments_folder = newsitem['attachments'] self.failUnless('test1.txt' in attachments_folder) self.failUnless('test2.txt' in attachments_folder) self.assertEqual(attachments_folder['test1.txt'].filename, 'test1.txt') self.assertEqual(attachments_folder['test2.txt'].filename, 'test2.txt') self.failUnless('photo' in newsitem) self.assertEqual(newsitem['photo'].data, dummy_photo) self.assertEqual(site.tags._called_with[1]['tags'], ['tag1', 'tag2'])
def test_handle_submit(self): from karl.models.interfaces import ISite from zope.interface import directlyProvides site = testing.DummyModel(sessions=DummySessions()) directlyProvides(site, ISite) from karl.testing import DummyCatalog from karl.models.adapters import CatalogSearch from karl.models.interfaces import ICatalogSearch from zope.interface import Interface site.catalog = DummyCatalog() testing.registerAdapter(CatalogSearch, (Interface), ICatalogSearch) context = self.context site['newsitem'] = context tags = DummyTags() site.tags = tags controller = self._makeOne(context, self.request) from karl.content.views.newsitem import _now now = _now() simple = { 'title': 'NewFoo', 'text': 'text', 'caption': 'caption', 'publication_date': now } from karl.models.tests.test_image import one_pixel_jpeg as dummy_photo from karl.testing import DummyUpload attachment1 = DummyUpload(filename='test1.txt') attachment2 = DummyUpload(filename=r'C:\My Documents\Ha Ha\test2.txt') photo = DummyUpload(filename='test.jpg', mimetype='image/jpeg', data=dummy_photo) converted = { 'tags': ['tag1', 'tag2'], 'attachments': [attachment1, attachment2], 'photo': photo, } converted.update(simple) from karl.models.interfaces import IImageFile from karl.content.interfaces import ICommunityFile from karl.views.tests.test_file import DummyImageFile from repoze.lemonade.testing import registerContentFactory registerContentFactory(DummyImageFile, IImageFile) registerContentFactory(DummyFile, ICommunityFile) response = controller.handle_submit(converted) msg = "?status_message=News%20Item%20edited" self.assertEqual(response.location, 'http://example.com/newsitem/%s' % msg) for field, value in simple.items(): self.assertEqual(getattr(context, field), value) attachments_folder = context['attachments'] self.failUnless('test1.txt' in attachments_folder) self.failUnless('test2.txt' in attachments_folder) self.assertEqual(attachments_folder['test1.txt'].filename, 'test1.txt') self.assertEqual(attachments_folder['test2.txt'].filename, 'test2.txt') self.failUnless('photo.jpg' in context) self.assertEqual(site.tags._called_with[1]['tags'], ['tag1', 'tag2'])
def test_form_defaults(self): from karl.content.views.newsitem import _now prenow = _now() controller = self._makeOne(self.context, self.request) defaults = controller.form_defaults() for field, value in defaults.items(): if field != 'publication_date': self.failIf(value) self.failUnless(defaults['publication_date'] > prenow)
def test_handle_submit(self): from karl.models.interfaces import ISite from zope.interface import directlyProvides site = testing.DummyModel(sessions=DummySessions()) directlyProvides(site, ISite) from karl.testing import DummyCatalog from karl.models.adapters import CatalogSearch from karl.models.interfaces import ICatalogSearch from zope.interface import Interface site.catalog = DummyCatalog() karl.testing.registerAdapter(CatalogSearch, (Interface), ICatalogSearch) context = self.context site['newsitem'] = context tags = DummyTags() site.tags = tags controller = self._makeOne(context, self.request) from karl.content.views.newsitem import _now now = _now() simple = { 'title': 'NewFoo', 'text': 'text', 'caption': 'caption', 'publication_date': now } from karl.testing import DummyUpload attachment1 = DummyUpload(filename='test1.txt') attachment2 = DummyUpload(filename=r'C:\My Documents\Ha Ha\test2.txt') photo = DummyUpload(filename='test.jpg', mimetype='image/jpeg', data=dummy_photo) converted = { 'tags': ['tag1', 'tag2'], 'attachments': [attachment1, attachment2], 'photo': photo, } converted.update(simple) from karl.content.interfaces import ICommunityFile from repoze.lemonade.testing import registerContentFactory registerContentFactory(DummyFile, ICommunityFile) response = controller.handle_submit(converted) msg = "?status_message=News%20Item%20edited" self.assertEqual(response.location, 'http://example.com/newsitem/%s' % msg) for field, value in simple.items(): self.assertEqual(getattr(context, field), value) attachments_folder = context['attachments'] self.failUnless('test1.txt' in attachments_folder) self.failUnless('test2.txt' in attachments_folder) self.assertEqual(attachments_folder['test1.txt'].filename, 'test1.txt') self.assertEqual(attachments_folder['test2.txt'].filename, 'test2.txt') self.failUnless('photo' in context) self.assertEqual(site.tags._called_with[1]['tags'], ['tag1', 'tag2'])