def test_collection(self): for compression in ['zipstored', 'zipdeflated']: with open(self.test_collection_file, 'w') as f: opts = get_compression_opts(compression) for data in ZipStream(self.files, opts['compression_type']): f.write(data) with ZipFile(self.test_collection_file, 'r') as f: self.assertIsNone(f.testzip())
def test_collection(self): for compression in ['zipstored', 'zipdeflated']: with open(self.test_collection_file, 'w') as f: opts = get_compression_opts(compression) for data in ZipStream(self.files, opts['compression_type']): f.write(data) with ZipFile(self.test_collection_file, 'r') as f: self.assertIsNone(f.testzip())
def post(self, rtip_id, compression): files_dict = yield download_all_files(self.current_user.user_id, rtip_id) if compression is None: compression = 'zipdeflated' opts = get_compression_opts(compression) node_dict = yield admin.admin_serialize_node(self.request.language) receiver_dict = yield get_receiver_from_rtip(rtip_id, self.request.language) rtip_dict = yield get_rtip_info(rtip_id, self.request.language) collection_tip_dict = yield get_collection_info(rtip_id) context_dict = yield admin.get_context(rtip_dict['context_id'], 'en') notif_dict = yield admin.notification.get_notification( self.request.language) mock_event = Event( type=u'zip_collection', trigger='Download', node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, tip_info=rtip_dict, subevent_info=collection_tip_dict, do_mail=False, ) formatted_coll = Templating().format_template( notif_dict['zip_description'], mock_event).encode('utf-8') files_dict.append({ 'buf': formatted_coll, 'name': "COLLECTION_INFO.txt" }) self.set_status(200) self.set_header('X-Download-Options', 'noopen') self.set_header('Content-Type', 'application/octet-stream') self.set_header('Content-Disposition', 'attachment; filename=\"%s\"' % opts['filename']) if compression in ['zipstored', 'zipdeflated']: for data in ZipStream(files_dict, opts['compression_type']): self.write(data) self.finish()
def post(self, rtip_id, compression): files_dict = yield download_all_files(self.current_user.user_id, rtip_id) if compression is None: compression = 'zipdeflated' opts = get_compression_opts(compression) node_dict = yield admin.admin_serialize_node(self.request.language) receiver_dict = yield get_receiver_from_rtip(rtip_id, self.request.language) rtip_dict = yield get_rtip_info(rtip_id, self.request.language) collection_tip_dict = yield get_collection_info(rtip_id) context_dict = yield admin.get_context(rtip_dict['context_id'], 'en') notif_dict = yield admin.notification.get_notification(self.request.language) mock_event = Event( type=u'zip_collection', trigger='Download', node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, tip_info=rtip_dict, subevent_info=collection_tip_dict, do_mail=False, ) formatted_coll = Templating().format_template(notif_dict['zip_description'], mock_event).encode('utf-8') files_dict.append( { 'buf': formatted_coll, 'name': "COLLECTION_INFO.txt" } ) self.set_status(200) self.set_header('X-Download-Options', 'noopen') self.set_header('Content-Type', 'application/octet-stream') self.set_header('Content-Disposition', 'attachment; filename=\"%s\"' % opts['filename']) if compression in ['zipstored', 'zipdeflated']: for data in ZipStream(files_dict, opts['compression_type']): self.write(data) self.finish()