def test_form_defaults(self): context = self.context from karl.testing import DummyFile context['attachments']['a'] = DummyFile(__name__='1', mimetype='text/plain') controller = self._makeOne(context, self.request) defaults = controller.form_defaults() self.assertEqual(defaults.get('title'), 'dummytitle') self.assertEqual(defaults.get('text'), 'dummytext') self.assertEqual(len(defaults['attachments']), 1)
def test_with_filename(self): from karl.content.interfaces import ICommunityFile from StringIO import StringIO attachments = [ DummyFile(filename='abc', mimetype='text/plain', file=StringIO('abc')) ] folder = testing.DummyModel() from repoze.lemonade.testing import registerContentFactory registerContentFactory(DummyFile, ICommunityFile) request = testing.DummyRequest() self._callFUT(attachments, folder, 'chris', request) self.failUnless('abc' in folder)
def test_without_filename_remove(self): from karl.content.interfaces import ICommunityFile attachment = DummyFile(filename=None, metadata={'remove':True, 'default':'a'}) attachments = [ attachment ] folder = testing.DummyModel() folder['a'] = testing.DummyModel() from repoze.lemonade.testing import registerContentFactory registerContentFactory(DummyFile, ICommunityFile) request = testing.DummyRequest() self._callFUT(attachments, folder, 'chris', request) self.failIf('a' in folder)
def test_form_defaults(self): self._registerDummyWorkflow() context = self._makeContext() context.title = 'title' context.text = 'abc' context['attachments'] = testing.DummyModel() context['attachments']['a'] = DummyFile(__name__='1', mimetype='text/plain') context.security_state = 'private' request = self._makeRequest() controller = self._makeOne(context, request) defaults = controller.form_defaults() self.assertEqual(defaults['title'], 'title') self.assertEqual(defaults['tags'], []) self.assertEqual(defaults['text'], 'abc') self.assertEqual(len(defaults['attachments']), 1) self.assertEqual(defaults['security_state'], 'private')
def test_with_filename_too_big(self): from karl.testing import registerSettings from karl.content.interfaces import ICommunityFile from StringIO import StringIO registerSettings(upload_limit=1) attachments = [ DummyFile(filename='abc', mimetype='text/plain', file=StringIO('abc')) ] folder = testing.DummyModel() from repoze.lemonade.testing import registerContentFactory class BigDummyFile(object): def __init__(self, **kw): self.__dict__.update(kw) self.size = 10000 registerContentFactory(BigDummyFile, ICommunityFile) request = testing.DummyRequest() self.assertRaises(ValueError, self._callFUT, attachments, folder, 'chris', request)