def test_zip_file_importer(self): """Test ZIP import adapter. """ importer = IZipFileImporter(self.root.folder, None) self.assertTrue(verifyObject(interfaces.IZipFileImporter, importer)) importer = IZipFileImporter(self.root.link, None) self.assertEqual(importer, None)
def test_zip_file_importer_is_archive(self): """Test method isFullmediaArchive on an importer. """ importer = IZipFileImporter(self.root.folder) with self.layer.open_fixture('test1.zip') as test_archive: self.assertEqual(importer.isFullmediaArchive(test_archive), False) with self.layer.open_fixture('test_import_link.zip') as test_archive: self.assertEqual(importer.isFullmediaArchive(test_archive), True)
def import_file(self, data): # This need improvements and refactoing importer = IZipFileImporter(self.context) try: if importer.isFullmediaArchive(data['archive']): importer = importer.importFromZip( data['archive'], self.request, {'replace_content': data.getDefault('replace'), 'ignore_top_level_content': data.getDefault('ignore_top_level')}) make_import_log(self.context, importer) problems = importer.getProblems() if len(problems): self.send_message( _(u'Import is successful, but there are ' u'${many} problem(s).', mapping={'many': len(problems)}), type=u"error") else: self.send_message( _(u"Import succeeded."), type=u"feedback") else: importer = IArchiveFileImporter(self.context) imported, failures = importer.importArchive( data['archive'], data.getDefault('asset_title'), data.getDefault('sub_directories'), data.getDefault('replace')) if imported: self.send_message( _('Imported ${succeeded}.', mapping={'succeeded': ', '.join(imported)}), type=u"feedback") if failures: self.send_message( _('Could not import: ${failed}.', mapping={'failed': ', '.join(failures)}), type=u"error") except zipfile.BadZipfile as error: self.send_message( _('Invalid import file: ${error}.', mapping={'error': str(error)}), type=u"error")