def testSize(self): blob = self.folder['blob'] # test with a small file gif = getImage() blob.update(file=makeFileUpload(gif, 'test.gif')) self.assertEqual(blob.get_size(), len(gif)) # and a large one blob.update(file=makeFileUpload(largefile_data, 'test.txt')) self.assertEqual(blob.get_size(), len(largefile_data))
def testOpenAfterConsume(self): """ it's an expected use case to be able to open a blob for reading immediately after populating it by consuming """ blob = self.folder['blob'] blob.update(file=makeFileUpload(largefile_data, 'test.txt')) b = blob.getFile().getBlob().open('r') self.assertEqual(b.read(10), largefile_data[:10])
def testFileUploadPatch(self): f = makeFileUpload(largefile_data, 'test.txt') name = f.name # the filesystem file of a large file should exist self.assertTrue(isfile(name), name) # even after it's been closed f.close() self.assertTrue(isfile(name), name) # but should go away when deleted del f self.assertFalse(isfile(name), name)
def testEditTranslatedBlobelFish(self): guide = getData('plone.pdf') fish = self.folder[self.folder.invokeFactory('BlobelFish', 'flobby')] fish.update(title='Me fish.', guide=guide, language='en') # add a translation and then upload a new file... fisch = fish.addTranslation('de', title='Ich Fisch.') blob = fish.getGuide().getBlob() test = getData('test.pdf') fish.update(guide=makeFileUpload(test, 'test.pdf')) self.assertNotEqual(fish.getGuide().getBlob(), blob) self.assertEqual(fish.getGuide().getBlob(), fisch.getGuide().getBlob()) self.assertEqual(str(fish.getGuide()), test) self.assertEqual(str(fisch.getGuide()), test)
def test_uploadFile(self): file = File('foo', 'Foo', getFile('plone.pdf'), 'application/pdf') file.filename = 'foo.pdf' myUpload = makeFileUpload(file, 'test.gif') myUpload.method = 'GET' view = VNCCollabUtilView(self.portal, myUpload) self.assertRaises(Exception, lambda: view.uploadFile(myUpload)) myUpload = makeFileUpload(file, 'test.gif') myUpload.method = 'POST' myUpload.form = {} headers, output, request = makeResponse(myUpload) view = VNCCollabUtilView(self.portal, request) result = view.uploadFile(file) self.assertEqual(result, 'http://nohost/plone/foo.pdf/edit') myUpload = makeFileUpload(file, 'test.gif') myUpload.method = 'POST' myUpload.form = {'ajax_call': True} headers, output, request = makeResponse(myUpload) view = VNCCollabUtilView(self.portal, request) result = view.uploadFile(file) self.assertEqual(result, 'http://nohost/plone/foo.pdf-1/edit')
def testFileName(self): """ checks fileupload object supports the filename """ f = makeFileUpload(largefile_data, 'test.txt') self.assert_(isfile(f.name))