Esempio n. 1
0
    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())
Esempio n. 2
0
    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())
Esempio n. 3
0
    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()
Esempio n. 4
0
    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()