def test_filesystem_storage_works(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') notify(ObjectInitializedEvent(fi)) uid = fi.UID() fi.reindexObject() # for pc fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/small/dump_1.gif' % (uid[0], uid[1], uid)) self.assertEquals( fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'small', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/normal/dump_1.gif' % (uid[0], uid[1], uid)) self.assertEquals( fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'normal', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/large/dump_1.gif' % (uid[0], uid[1], uid)) self.assertEquals( fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'large', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/text/dump_1.txt' % (uid[0], uid[1], uid)) self.assertEquals( fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'text', 'dump_1.txt'))
def test_publish_unpublish_again_works_with_obfuscation(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' gsettings.storage_obfuscate = True fi = self.createFile('test.pdf') uid = fi.UID() fi.reindexObject() notify(ObjectInitializedEvent(fi)) settings = Settings(fi) self.assertTrue( exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue( listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3) # publish now workflowTool = getToolByName(fi, 'portal_workflow') workflowTool.doActionFor(fi, 'publish') self.assertTrue(not exists( join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) workflowTool.doActionFor(fi, 'retract') self.assertTrue( exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue( listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3)
def test_filesystem_storage_works(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') notify(ObjectInitializedEvent(fi)) uid = fi.UID() fi.reindexObject() # for pc fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/small/dump_1.gif' % ( uid[0], uid[1], uid)) self.assertEquals(fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'small', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/normal/dump_1.gif' % ( uid[0], uid[1], uid)) self.assertEquals(fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'normal', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/large/dump_1.gif' % ( uid[0], uid[1], uid)) self.assertEquals(fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'large', 'dump_1.gif')) fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/%s/%s/text/dump_1.txt' % ( uid[0], uid[1], uid)) self.assertEquals(fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'text', 'dump_1.txt'))
def test_publish_unpublish_again_works_with_obfuscation(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' gsettings.storage_obfuscate = True fi = self.createFile('test.pdf') uid = fi.UID() fi.reindexObject() notify(ObjectInitializedEvent(fi)) settings = Settings(fi) self.assertTrue(exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue(listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3) # publish now workflowTool = getToolByName(fi, 'portal_workflow') workflowTool.doActionFor(fi, 'publish') self.assertTrue(not exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) workflowTool.doActionFor(fi, 'retract') self.assertTrue(exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue(listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3)
def test_cleanup_file_storage(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') uid = fi.UID() self.assertTrue(exists(join(_dir, uid[0], uid[1], uid))) self.portal.manage_delObjects([fi.getId()]) self.assertTrue(not exists(join(_dir, uid[0], uid[1], uid)))
def test_filesystem_missing_gives_404(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') notify(ObjectInitializedEvent(fi)) uid = fi.UID() self.assertRaises( KeyError, self.portal.unrestrictedTraverse, '@@dvpdffiles/%s/%s/%s/small/foobar.gif' % (uid[0], uid[1], uid))
def test_cleanup_file_storage_does_not_delete_good_files(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') uid = fi.UID() fi.reindexObject() notify(ObjectInitializedEvent(fi)) self.assertTrue(exists(join(_dir, uid[0], uid[1], uid))) self.portal.unrestrictedTraverse('@@dvcleanup-filestorage')() self.assertTrue(exists(join(_dir, uid[0], uid[1], uid)))
def test_filesystem_missing_gives_404(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') notify(ObjectInitializedEvent(fi)) uid = fi.UID() self.assertRaises(KeyError, self.portal.unrestrictedTraverse, '@@dvpdffiles/%s/%s/%s/small/foobar.gif' % ( uid[0], uid[1], uid))
def test_filesystem_old_storage_works(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') uid = fi.UID() fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/{}/{}/{}/small/dump_1.gif'.format( uid[0], uid[1], uid)) self.assertEqual( fiobj.context.path, join(_dir, uid[0], uid[1], uid, 'small', 'dump_1.gif'))
def test_blob_new_storage_works(self): gsettings = GlobalSettings(self.portal) gsettings.storage_type = 'Blob' fi = self.createFile('test.pdf') notify(ObjectInitializedEvent(fi)) uid = fi.UID() fi.reindexObject() # for pc req = self.request files = self.portal.unrestrictedTraverse('@@dvpdffiles') files = files.publishTraverse(req, uid[0]) files = files.publishTraverse(req, uid[1]) blobtraverser = files.publishTraverse(req, uid) blobtraverser = blobtraverser.publishTraverse(req, 'small') blobtraverser = blobtraverser.publishTraverse(req, 'dump_1.gif') self.assertTrue(isinstance(blobtraverser, BlobFileWrapper))
def test_filesystem_old_storage_works(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') settings = Settings(fi) del settings._metadata['storage_version'] notify(ObjectInitializedEvent(fi)) uid = fi.UID() fi.reindexObject() # for pc fiobj = self.portal.unrestrictedTraverse( '@@dvpdffiles/%s/small/dump_1.gif' % uid) self.assertEquals(fiobj.context.path, join(_dir, uid, 'small', 'dump_1.gif'))
def test_blob_old_storage_works(self): gsettings = GlobalSettings(self.portal) gsettings.storage_type = 'Blob' fi = self.createFile('test.pdf') settings = Settings(fi) del settings._metadata['storage_version'] notify(ObjectModifiedEvent(fi)) uid = fi.UID() fi.reindexObject() # for pc req = self.request files = self.portal.unrestrictedTraverse('@@dvpdffiles') blobtraverser = files.publishTraverse(req, uid) blobtraverser = blobtraverser.publishTraverse(req, 'small') blobtraverser = blobtraverser.publishTraverse(req, 'dump_1.gif') self.assertTrue(isinstance(blobtraverser, BlobFileWrapper))
def test_storage_obsfucates_dir(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' gsettings.storage_obfuscate = True fi = self.createFile('test.pdf') uid = fi.UID() fi.reindexObject() notify(ObjectInitializedEvent(fi)) settings = Settings(fi) self.assertTrue(exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue(listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3)
def test_storage_obsfucates_dir(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' gsettings.storage_obfuscate = True fi = self.createFile('test.pdf') uid = fi.UID() fi.reindexObject() notify(ObjectInitializedEvent(fi)) settings = Settings(fi) self.assertTrue( exists(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret))) self.assertTrue( listdir(join(_dir, uid[0], uid[1], uid, settings.obfuscate_secret)) > 3)
def test_saves_with_file_storage(self): fi = self.createFile('test.odp') gsettings = GlobalSettings(self.portal) gsettings.auto_select_layout = True gsettings.auto_layout_file_types = ['ppt'] gsettings.storage_type = 'File' _dir = mkdtemp() gsettings.storage_location = _dir notify(ObjectInitializedEvent(fi)) fi_dir = storage.getResourceDirectory(obj=fi) self.assertEqual(len(listdir(fi_dir)), 4) self.assertEqual(len(listdir(join(fi_dir, 'normal'))), 1) self.assertEqual(len(listdir(join(fi_dir, 'small'))), 1) self.assertEqual(len(listdir(join(fi_dir, 'large'))), 1) self.assertEqual(len(listdir(join(fi_dir, 'text'))), 1) shutil.rmtree(fi_dir)
def test_migrate_old_storage(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') settings = Settings(fi) del settings._metadata['storage_version'] fi.reindexObject() notify(ObjectInitializedEvent(fi)) self.assertEquals(settings.storage_version, 1) old_path = storage.getResourceDirectory(obj=fi) self.assertTrue(exists(old_path)) from collective.documentviewer.upgrades import migrate_old_storage migrate_old_storage(self.portal) self.assertTrue(not exists(old_path)) self.assertEquals(settings.storage_version, STORAGE_VERSION) new_path = storage.getResourceDirectory(obj=fi) self.assertTrue(exists(new_path)) self.assertEquals(len(listdir(new_path)), 4)
def test_migrate_old_storage(self): gsettings = GlobalSettings(self.portal) _dir = mkdtemp() gsettings.storage_location = _dir gsettings.storage_type = 'File' fi = self.createFile('test.pdf') settings = Settings(fi) del settings._metadata['storage_version'] fi.reindexObject() notify(ObjectInitializedEvent(fi)) self.assertEquals(settings.storage_version, 1) old_path = storage.getResourceDirectory(obj=fi) self.assertTrue(exists(old_path)) from collective.documentviewer.upgrades import migrate_old_storage migrate_old_storage(self.portal) self.assertTrue(not exists(old_path)) self.assertEquals(settings.storage_version, STORAGE_VERSION) new_path = storage.getResourceDirectory(obj=fi) self.assertTrue(exists(new_path)) self.assertEquals(len(listdir(new_path)), 6)