Exemplo n.º 1
0
    def pipeline_crossref(self):
        xylose_article = CustomArticle(self._article)

        ppl = plumber.Pipeline(
            export_crossref.SetupDoiBatchPipe(), export_crossref.XMLHeadPipe(),
            export_crossref.XMLBodyPipe(), export_crossref.XMLDoiBatchIDPipe(),
            export_crossref.XMLTimeStampPipe(),
            export_crossref.XMLDepositorPipe(),
            export_crossref.XMLRegistrantPipe(),
            export_crossref.XMLJournalPipe(),
            export_crossref.XMLJournalMetadataPipe(),
            export_crossref.XMLJournalTitlePipe(),
            export_crossref.XMLAbbreviatedJournalTitlePipe(),
            export_crossref.XMLISSNPipe(),
            export_crossref.XMLJournalIssuePipe(),
            export_crossref.XMLPubDatePipe(), export_crossref.XMLVolumePipe(),
            export_crossref.XMLIssuePipe(),
            export_crossref.XMLJournalArticlePipe(),
            export_crossref.XMLArticleTitlesPipe(),
            export_crossref.XMLArticleTitlePipe(),
            export_crossref.XMLArticleContributorsPipe(),
            export_crossref.XMLArticleAbstractPipe(),
            export_crossref.XMLArticlePubDatePipe(),
            export_crossref.XMLPagesPipe(), export_crossref.XMLPIDPipe(),
            export_crossref.XMLPermissionsPipe(),
            export_crossref.XMLElocationPipe(),
            export_crossref.XMLDOIDataPipe(), export_crossref.XMLDOIPipe(),
            export_crossref.XMLResourcePipe(),
            export_crossref.XMLCollectionPipe(),
            export_crossref.XMLArticleCitationsPipe(),
            export_crossref.XMLClosePipe())

        transformed_data = ppl.run(xylose_article, rewrap=True)

        return next(transformed_data)
    def test_article_pid_element(self):

        xmlcrossref = ET.Element('doi_batch')

        journal_article = ET.Element('journal_article')
        journal_article.set('publication_type', 'full_text')

        journal = ET.Element('journal')
        journal.append(journal_article)

        body = ET.Element('body')
        body.append(journal)

        xmlcrossref.append(body)

        data = [self._article_meta, xmlcrossref]

        xmlcrossref = export_crossref.XMLPIDPipe()
        raw, xml = xmlcrossref.transform(data)

        self.assertEqual(
            b'<doi_batch><body><journal><journal_article publication_type="full_text"><publisher_item><identifier id_type="pii">S0034-89102010000400007</identifier></publisher_item></journal_article></journal></body></doi_batch>',
            ET.tostring(xml))