示例#1
0
    def pipeline_rsps(self):
        xylose_article = Article(self._article)

        ppl = plumber.Pipeline(export_rsps.SetupArticlePipe(),
                               export_rsps.XMLArticlePipe(),
                               export_rsps.XMLFrontPipe(),
                               export_rsps.XMLJournalMetaJournalIdPipe(),
                               export_rsps.XMLJournalMetaJournalTitleGroupPipe(),
                               export_rsps.XMLJournalMetaISSNPipe(),
                               export_rsps.XMLJournalMetaPublisherPipe(),
                               export_rsps.XMLArticleMetaArticleIdPublisherPipe(),
                               export_rsps.XMLArticleMetaArticleIdDOIPipe(),
                               export_rsps.XMLArticleMetaArticleCategoriesPipe(),
                               export_rsps.XMLArticleMetaTitleGroupPipe(),
                               export_rsps.XMLArticleMetaTranslatedTitleGroupPipe(),
                               export_rsps.XMLArticleMetaContribGroupPipe(),
                               export_rsps.XMLArticleMetaAffiliationPipe(),
                               export_rsps.XMLArticleMetaGeneralInfoPipe(),
                               export_rsps.XMLArticleMetaHistoryPipe(),
                               export_rsps.XMLArticleMetaPermissionPipe(),
                               export_rsps.XMLArticleMetaAbstractsPipe(),
                               export_rsps.XMLArticleMetaKeywordsPipe(),
                               export_rsps.XMLArticleMetaCountsPipe(),
                               export_rsps.XMLBodyPipe(),
                               export_rsps.XMLArticleMetaCitationsPipe(),
                               export_rsps.XMLSubArticlePipe(),
                               export_rsps.XMLClosePipe())

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

        return next(transformed_data)
    def test_xmlarticle_meta_general_info_pub_year_pipe(self):

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        pub_year = xml.find('./front/article-meta/pub-date[@pub-type="epub-ppub"]/year').text

        self.assertEqual(u'2010', pub_year)
    def test_xmlarticle_meta_general_info_pub_month_pipe(self):

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        pub_month = xml.find('./front/article-meta/pub-date/month').text

        self.assertEqual(u'08', pub_month)
    def test_xmlarticle_meta_general_info_issue_pipe(self):

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        issue = xml.find('./front/article-meta/issue').text

        self.assertEqual(u'4', issue)
    def test_xmlarticle_meta_general_info_without_elocation_pipe(self):

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        eloc = xml.find('./front/article-meta/elocation-id')

        self.assertEqual(None, eloc)
    def test_xmlarticle_meta_general_info_elocation_pipe(self):

        self._article_meta.data['article']['v14'][0]['e'] = 'eloc1'

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        eloc = xml.find('./front/article-meta/elocation-id').text

        self.assertEqual(u'eloc1', eloc)
    def test_xmlarticle_meta_general_info_without_volume_pipe(self):

        del(self._article_meta.data['issue']['issue']['v31'])

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        volume = xml.find('./front/article-meta/volume').text

        self.assertEqual('0', volume)
    def test_xmlarticle_meta_general_info_without_last_page_pipe(self):

        del(self._article_meta.data['article']['v14'][0]['l'])

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        lpage = xml.find('./front/article-meta/lpage')

        self.assertEqual(None, lpage)
    def test_xmlarticle_meta_general_info_suppl_vol_pipe(self):

        self._article_meta.data['issue']['issue']['v65'] = [{'_': '201008'}]
        del(self._article_meta.data['issue']['issue']['v32'])
        self._article_meta.data['issue']['issue']['v131'] = [{'_': '1'}]

        pxml = ET.Element('article')
        pxml.append(ET.Element('front'))

        front = pxml.find('front')
        front.append(ET.Element('article-meta'))

        data = [self._article_meta, pxml]

        xmlarticle = export_rsps.XMLArticleMetaGeneralInfoPipe()
        raw, xml = xmlarticle.transform(data)

        issue = xml.find('./front/article-meta/issue').text

        self.assertEqual(u'suppl 1', issue)