Esempio n. 1
0
    def test_pdf_conversion_job_is_queued_for_every_document(self):
        api.portal.set_registry_record(
            'archival_file_conversion_enabled', True,
            interface=IDossierResolveProperties)

        doc1 = create(Builder('document')
                      .within(self.dossier)
                      .attach_file_containing(
                          bumblebee_asset('example.docx').bytes(),
                          u'example.docx'))
        create(Builder('document')
               .within(self.dossier)
               .attach_file_containing(
                   bumblebee_asset('example.docx').bytes(),
                   u'example.docx'))

        get_queue().reset()
        with RequestsSessionMock.installed():
            api.content.transition(obj=self.dossier,
                                   transition='dossier-transition-resolve')
            transaction.commit()

            self.assertEquals(2, len(get_queue().queue))
            self.assertDictContainsSubset(
                {'callback_url': '{}/archival_file_conversion_callback'.format(
                    doc1.absolute_url()),
                 'file_url': 'http://nohost/plone/bumblebee_download?checksum={}&uuid={}'.format(
                     DOCX_CHECKSUM, IUUID(doc1)),
                 'target_format': 'pdf/a',
                 'url': '/plone/dossier-1/document-1/bumblebee_trigger_conversion'},
                get_queue().queue[0])
Esempio n. 2
0
    def test_pdf_conversion_job_is_queued_for_every_document(self):
        api.portal.set_registry_record('archival_file_conversion_enabled',
                                       True,
                                       interface=IDossierResolveProperties)

        doc1 = create(
            Builder('document').within(self.dossier).attach_file_containing(
                bumblebee_asset('example.docx').bytes(), u'example.docx'))
        create(
            Builder('document').within(self.dossier).attach_file_containing(
                bumblebee_asset('example.docx').bytes(), u'example.docx'))

        get_queue().reset()
        with RequestsSessionMock.installed():
            api.content.transition(obj=self.dossier,
                                   transition='dossier-transition-resolve')
            transaction.commit()

            self.assertEquals(2, len(get_queue().queue))
            self.assertDictContainsSubset(
                {
                    'callback_url':
                    '{}/archival_file_conversion_callback'.format(
                        doc1.absolute_url()),
                    'file_url':
                    'http://nohost/plone/bumblebee_download?checksum={}&uuid={}'
                    .format(DOCX_CHECKSUM, IUUID(doc1)),
                    'target_format':
                    'pdf/a',
                    'url':
                    '/plone/dossier-1/document-1/bumblebee_trigger_conversion'
                },
                get_queue().queue[0])
    def test_queue_storing_on_reviving(self, browser):
        self.login(self.administrator, browser)

        browser.visit(self.document)
        reset_queue()

        self.assertEquals(0, len(get_queue()))

        browser.css('.actionMenuContent li').find('Revive preview').first.click()

        self.assertEquals(1, len(get_queue()))
Esempio n. 4
0
    def test_queue_storing_on_reviving(self, browser):
        self.login(self.administrator, browser)

        browser.visit(self.document)
        reset_queue()

        self.assertEquals(0, len(get_queue()))

        browser.css('.actionMenuContent li').find(
            'Revive preview').first.click()

        self.assertEquals(1, len(get_queue()))
Esempio n. 5
0
    def test_pdf_conversion_is_disabled_by_default(self):
        create(
            Builder('document').within(self.dossier).attach_file_containing(
                bumblebee_asset('example.docx').bytes(), u'example.docx'))

        get_queue().reset()

        with RequestsSessionMock.installed():
            api.content.transition(obj=self.dossier,
                                   transition='dossier-transition-resolve')
            transaction.commit()

            self.assertEquals(0, len(get_queue().queue))
Esempio n. 6
0
    def test_pdf_conversion_is_disabled_by_default(self):
        create(Builder('document')
               .within(self.dossier)
               .attach_file_containing(
                   bumblebee_asset('example.docx').bytes(),
                   u'example.docx'))

        get_queue().reset()

        with RequestsSessionMock.installed():
            api.content.transition(obj=self.dossier,
                                   transition='dossier-transition-resolve')
            transaction.commit()

            self.assertEquals(0, len(get_queue().queue))
Esempio n. 7
0
    def test_queues_demand_pdf_jobs_and_prepares_for_callback(self):
        self.login(self.meeting_user)
        self.schedule_proposal(self.meeting, self.submitted_proposal)
        self.schedule_ad_hoc(self.meeting, 'ad-hoc agenda item')
        reset_queue()

        exporter = MeetingZipExporter(self.meeting.model)
        job = exporter.demand_pdfs()
        queue = get_queue()
        self.assertEqual(3, len(queue.queue))

        annotations = IAnnotations(self.committee)
        zip_jobs = annotations[ZIP_JOBS_KEY]
        self.assertIn(job.job_id, zip_jobs)

        zip_job_metadata = zip_jobs[job.job_id]

        self.assertIn('documents', zip_job_metadata)
        document_jobs = zip_job_metadata['documents']
        self.assertEqual(3, len(document_jobs))

        doc = self.submitted_proposal.get_proposal_document()
        document_id = IUUID(doc)
        self.assertIn(document_id, document_jobs)

        doc_job = document_jobs[document_id]
        self.assertDictContainsSubset({'status': 'converting'}, doc_job)
Esempio n. 8
0
    def test_queues_bumblebee_storing_after_revert_to_previous_version(self):
        dossier = create(Builder('dossier'))
        document = create(
            Builder('document').within(dossier).attach_file_containing(
                'foo', u'example.docx'))
        create_document_version(document,
                                1,
                                data=bumblebee_asset('example.docx').bytes())
        create_document_version(document, 2)
        queue = get_queue()
        queue.reset()

        manager = getMultiAdapter((document, self.portal.REQUEST),
                                  ICheckinCheckoutManager)
        manager.revert_to_version(1)

        self.assertEquals(1, len(queue), 'Expected 1 job in the queue.')
        job, = queue.queue

        self.assertDictEqual(
            {
                'application':
                'local',
                'file_url': ('http://nohost/plone/bumblebee_download' +
                             '?checksum={}'.format(DOCX_CHECKSUM) +
                             '&uuid={}'.format(IUUID(document))),
                'salt':
                IUUID(document),
                'checksum':
                DOCX_CHECKSUM,
                'deferred':
                False,
                'url':
                '/plone/dossier-1/document-1/bumblebee_trigger_storing'
            }, job)
Esempio n. 9
0
    def test_queues_demand_pdf_jobs_and_prepares_for_callback(self):
        self.login(self.meeting_user)
        self.schedule_proposal(self.meeting, self.submitted_proposal)
        self.schedule_ad_hoc(self.meeting, 'ad-hoc agenda item')
        reset_queue()

        exporter = MeetingZipExporter(self.meeting.model)
        job = exporter.demand_pdfs()
        queue = get_queue()
        self.assertEqual(3, len(queue.queue))

        annotations = IAnnotations(self.committee)
        zip_jobs = annotations[ZIP_JOBS_KEY]
        self.assertIn(job.job_id, zip_jobs)

        zip_job_metadata = zip_jobs[job.job_id]

        self.assertIn('documents', zip_job_metadata)
        document_jobs = zip_job_metadata['documents']
        self.assertEqual(3, len(document_jobs))

        doc = self.submitted_proposal.get_proposal_document()
        document_id = IUUID(doc)
        self.assertIn(document_id, document_jobs)

        doc_job = document_jobs[document_id]
        self.assertDictContainsSubset(
            {'status': 'converting'},
            doc_job)
Esempio n. 10
0
    def test_queues_bumblebee_storing_after_revert_to_previous_version(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document')
                          .within(dossier)
                          .attach_file_containing(
                              'foo', u'example.docx'))
        create_document_version(document, 1,
                                data=bumblebee_asset('example.docx').bytes())
        create_document_version(document, 2)
        queue = get_queue()
        queue.reset()

        manager = getMultiAdapter((document, self.portal.REQUEST),
                                  ICheckinCheckoutManager)
        manager.revert_to_version(1)

        self.assertEquals(1, len(queue), 'Expected 1 job in the queue.')
        job, = queue.queue

        self.assertDictEqual(
            {'application': 'local',
             'file_url': ('http://nohost/plone/bumblebee_download' +
                          '?checksum={}'.format(DOCX_CHECKSUM) +
                          '&uuid={}'.format(IUUID(document))),
             'salt': IUUID(document),
             'checksum': DOCX_CHECKSUM,
             'deferred': False,
             'url': '/plone/dossier-1/document-1/bumblebee_trigger_storing'},
            job)
    def test_does_not_queue_bumblebee_storing_if_not_digitally_available(self):
        self.login(self.dossier_responsible)

        create(Builder('document').within(self.dossier))
        queue = get_queue()

        self.assertEquals(0, len(queue), 'Expected no job in the queue.')
    def test_queues_bumblebee_storing_after_revert_to_previous_version(self):
        self.login(self.dossier_responsible)

        self.subdocument.update_file(
            'foo',
            content_type='text/plain',
            filename=u'foo.txt',
        )

        create_document_version(
            self.subdocument,
            1,
            data=bumblebee_asset('example.docx').bytes(),
        )

        create_document_version(self.subdocument, 2)

        queue = get_queue()
        queue.reset()

        manager = self.get_checkout_manager(self.subdocument)
        manager.revert_to_version(1)

        self.assertEquals(1, len(queue), 'Expected 1 job in the queue.')

        expected_job = {
            'application':
            'local',
            'file_url':
            ('http://nohost/plone/bumblebee_download?checksum={}&uuid={}'.
             format(DOCX_CHECKSUM, IUUID(self.subdocument))),
            'salt':
            IUUID(self.subdocument),
            'checksum':
            DOCX_CHECKSUM,
            'deferred':
            False,
            'url':
            ('/plone/ordnungssystem/fuhrung/vertrage-und-vereinbarungen'
             '/dossier-1/dossier-2/document-22/bumblebee_trigger_storing'),
        }

        found_job, = queue.queue

        self.assertDictEqual(expected_job, found_job)
Esempio n. 13
0
 def test_does_not_queue_bumblebee_storing_if_not_digitally_available(self):
     create(Builder('document'))
     queue = get_queue()
     self.assertEquals(0, len(queue), 'Expected no job in the queue.')
Esempio n. 14
0
 def test_does_not_queue_bumblebee_storing_if_not_digitally_available(self):
     create(Builder('document'))
     queue = get_queue()
     self.assertEquals(0, len(queue), 'Expected no job in the queue.')