def _fill_event(self, event_type, trigger, trigger_id): """ Here I'm testing only encrypted_tip because trigger a bigger amount of %KeyWords% """ self.assertEqual(event_type, u'encrypted_tip') self.assertEqual(trigger, 'Tip') if event_type == u'encrypted_tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver( self.createdReceiver['id']) context_dict = yield admin.get_context(self.createdContext['id']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.admin_serialize_node() tip_dict = yield self.get_a_fucking_random_submission() self.event = Event(type=u'encrypted_tip', trigger='Tip', notification_settings=notif_dict, node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, plugin=None, trigger_info=tip_dict, trigger_parent=None)
def _fill_event(self, event_type, trigger, trigger_id): """ Here I'm testing only encrypted_tip because trigger a bigger amount of %KeyWords% """ self.assertEqual(event_type, u'encrypted_tip') self.assertEqual(trigger, 'Tip') if event_type == u'encrypted_tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver(self.createdReceiver['id']) context_dict = yield admin.get_context(self.createdContext['id']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.admin_serialize_node() tip_dict = yield self.get_a_fucking_random_submission() self.event = Event( type = u'encrypted_tip', trigger = 'Tip', notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, plugin = None, trigger_info = tip_dict, trigger_parent = None )
def _fill_event(self, type, trigger, trigger_id): if type == u'tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver(self.createdReceiver['receiver_gus']) context_dict = yield admin.get_context(self.createdContext['context_gus']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.get_node() self.event = Event( type = u'tip', trigger = 'Tip', notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, plugin = None, trigger_info = { 'id': trigger_id, 'creation_date': pretty_date_time(datetime_now()) } ) elif type == u'comment' and trigger == 'Comment': raise AssertionError("Not yet managed Mock comments") elif type == u'file' and trigger == 'File': raise AssertionError("Not yet managed Mock files") else: raise AssertionError("type and trigger maybe refactored, but you're using it bad")
def post(self, rtip_id, compression): files_dict = yield download_all_files(self.current_user.user_id, rtip_id) if not files_dict: raise errors.DownloadLimitExceeded if compression is None: compression = 'zipstored' opts = get_compression_opts(compression) node_dict = yield admin.admin_serialize_node() receiver_dict = yield get_receiver_from_rtip(rtip_id) rtip_dict = yield get_rtip_info(rtip_id) collection_tip_dict = yield get_collection_info(rtip_id) context_dict = yield admin.get_context(rtip_dict['context_id']) notif_dict = yield admin.get_notification() mock_event = Event( type = u'zip_collection', trigger = 'Download', notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, plugin = None, trigger_info = collection_tip_dict, trigger_parent = rtip_dict ) formatted_coll = Templating().format_template(notif_dict['zip_description'], mock_event).encode('utf-8') # log.debug("Generating collection content with: %s" % formatted_coll) 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) elif compression in ['tar', 'targz', 'tarbz2']: collectionstreamer = CollectionStreamer(self) tar = tarfile.open("collection." + compression, 'w|'+opts['compression_type'], collectionstreamer) for f in files_dict: if 'path' in f: try: tar.add(f['path'], f['name']) except (OSError, IOError) as excpd: log.err("OSError while adding %s to files collection: %s" % (f['path'], excpd)) elif 'buf' in f: tarinfo = tarfile.TarInfo(f['name']) tarinfo.size = len(f['buf']) tar.addfile(tarinfo, StringIO.StringIO(f['buf'])) tar.close() self.finish()
def post(self, rtip_id, compression): files_dict = yield download_all_files(self.current_user.user_id, rtip_id) if not files_dict: raise errors.DownloadLimitExceeded if compression is None: compression = 'zipstored' opts = get_compression_opts(compression) node_dict = yield admin.admin_serialize_node() receiver_dict = yield get_receiver_from_rtip(rtip_id) rtip_dict = yield get_rtip_info(rtip_id) collection_tip_dict = yield get_collection_info(rtip_id) context_dict = yield admin.get_context(rtip_dict['context_id']) notif_dict = yield admin.get_notification() mock_event = Event(type=u'zip_collection', trigger='Download', notification_settings=notif_dict, node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, plugin=None, trigger_info=collection_tip_dict, trigger_parent=rtip_dict) formatted_coll = Templating().format_template( notif_dict['zip_description'], mock_event).encode('utf-8') # log.debug("Generating collection content with: %s" % formatted_coll) 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) elif compression in ['tar', 'targz', 'tarbz2']: collectionstreamer = CollectionStreamer(self) tar = tarfile.open("collection." + compression, 'w|' + opts['compression_type'], collectionstreamer) for f in files_dict: if 'path' in f: try: tar.add(f['path'], f['name']) except (OSError, IOError) as excpd: log.err( "OSError while adding %s to files collection: %s" % (f['path'], excpd)) elif 'buf' in f: tarinfo = tarfile.TarInfo(f['name']) tarinfo.size = len(f['buf']) tar.addfile(tarinfo, StringIO.StringIO(f['buf'])) tar.close() self.finish()