joffilyfe: > Sugiro criar testes.
> Considerar que v65 = "20120000", por exemplo.

Refiz o PR @robertatakenaka, resolvi alterar o código do pipeline para algo mais versátil e adicionei testes para os casos requeridos.
robertatakenaka: @joffilyfe só para garantir, crie 1 teste pelo menos para quando há dia e mês.
joffilyfe: > @joffilyfe só para garantir, crie 1 teste pelo menos para quando há dia e mês.

Eles já existem @robertatakenaka, por exemplo: https://github.com/scieloorg/articles_meta/blob/master/tests/test_export_sci.py#L296-L297
diff --git a/articlemeta/export_rsps.py b/articlemeta/export_rsps.py
index d8cba54..17feeed 100644
--- a/articlemeta/export_rsps.py
+++ b/articlemeta/export_rsps.py
@@ -210,30 +210,28 @@ class XMLCitation(object):
         def precond(data):
             raw, xml = data
 
-            if not raw.date:
+            if not raw.publication_date:
                 raise plumber.UnmetPrecondition()
 
         @plumber.precondition(precond)
         def transform(self, data):
             raw, xml = data
 
-            pdate = ET.Element('date')
+            pdate = ET.Element("date")
 
-            if raw.date[8:10]:
-                day = ET.Element('day')
-                day.text = raw.date[8:10]
-                pdate.append(day)
-
-            if raw.date[5:7]:
-                month = ET.Element('month')
-                month.text = raw.date[5:7]
-                pdate.append(month)
+            date = {
+                "year": raw.publication_date[0:4],
+                "month": raw.publication_date[5:7],
+                "day": raw.publication_date[8:10],
+            }
 
-            year = ET.Element('year')
-            year.text = raw.date[0:4]
-            pdate.append(year)
+            for name, value in date.items():
+                if len(value) > 0 and value.isdigit() and int(value) > 0:
+                    date_element = ET.Element(name)
+                    date_element.text = value
+                    pdate.append(date_element)
 
-            xml.find('./element-citation').append(pdate)
+            xml.find("./element-citation").append(pdate)
 
             return data
 
diff --git a/articlemeta/export_sci.py b/articlemeta/export_sci.py
index 3a2f4c4..d914fe5 100644
--- a/articlemeta/export_sci.py
+++ b/articlemeta/export_sci.py
@@ -227,30 +227,28 @@ class XMLCitation(object):
         def precond(data):
             raw, xml = data
 
-            if not raw.date:
+            if not raw.publication_date:
                 raise plumber.UnmetPrecondition()
 
         @plumber.precondition(precond)
         def transform(self, data):
             raw, xml = data
 
-            pdate = ET.Element('date')
+            pdate = ET.Element("date")
 
-            if raw.date[8:10]:
-                day = ET.Element('day')
-                day.text = raw.date[8:10]
-                pdate.append(day)
+            date = {
+                "year": raw.publication_date[0:4],
+                "month": raw.publication_date[5:7],
+                "day": raw.publication_date[8:10],
+            }
 
-            if raw.date[5:7]:
-                month = ET.Element('month')
-                month.text = raw.date[5:7]
-                pdate.append(month)
+            for name, value in date.items():
+                if len(value) > 0 and value.isdigit() and int(value) > 0:
+                    date_element = ET.Element(name)
+                    date_element.text = value
+                    pdate.append(date_element)
 
-            year = ET.Element('year')
-            year.text = raw.date[0:4]
-            pdate.append(year)
-
-            xml.find('./element-citation').append(pdate)
+            xml.find("./element-citation").append(pdate)
 
             return data
 

[scieloci] Erro em data de publicação de 
### Descrição do problema

http://articlemeta.scielo.org/api/v1/article/?collection=scl&code=S0001-37652008000100006&format=xmlwos

Gerou year com valor 0000.

```xml
<ref id="B25"><element-citation publication-type="conference"><conf-name>Seminário Internacional de Manejoem Floresta Tropical-SEMA/WWF</conf-name><conf-loc>Serra dos Carajás</conf-loc><source>Presentation</source><date><day>29</day><month>01</month><year>0000</year></date><person-group><name><surname>FEARNSIDE</surname><given-names>PM</given-names></name></person-group></element-citation></ref>
```

No entanto, no registro há a data correta, no campo v64. O correto é usar `raw.publication_date` no lugar de `raw.date` entrega a data de acordo com o tipo de referência bibliográfica, ou seja, se é tese, a data da tese, se é link, a data do acesso, e assim por diante. No entanto, a data que interessa na referência bibliográfica é a data de publicação do documento.

https://github.com/scieloorg/articles_meta/blob/05743b335f07dd97b828c375c5240e2833e58657/articlemeta/export_sci.py#L230


diff --git a/tests/test_export_rsps.py b/tests/test_export_rsps.py
index b3dc281..8d9bdd8 100644
--- a/tests/test_export_rsps.py
+++ b/tests/test_export_rsps.py
@@ -167,6 +167,76 @@ class XMLCitationTests(unittest.TestCase):
         self.assertEqual(u'04', expected_month)
         self.assertEqual(u'30', expected_day)
 
+    def test_xml_citation_should_not_includes_month_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_month = xml.find("./element-citation/date/month")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_month)
+
+    def test_xml_citation_should_not_includes_day_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_day = xml.find("./element-citation/date/day")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_day)
+
+    def test_xml_citation_should_not_includes_month_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_month = xml.find("./element-citation/date/month")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_month)
+
+    def test_xml_citation_should_not_includes_year_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "00000000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        not_expected_year = xml.find("./element-citation/date/year")
+
+        self.assertIsNone(not_expected_year)
+
     def test_xml_citation_date_without_data_pipe(self):
 
         fakexylosearticle = Article({'article': {},
diff --git a/tests/test_export_sci.py b/tests/test_export_sci.py
index 58807e3..8c5e49b 100644
--- a/tests/test_export_sci.py
+++ b/tests/test_export_sci.py
@@ -296,6 +296,76 @@ class XMLCitationTests(unittest.TestCase):
         self.assertEqual(u'04', expected_month)
         self.assertEqual(u'30', expected_day)
 
+    def test_xml_citation_should_not_includes_month_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_month = xml.find("./element-citation/date/month")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_month)
+
+    def test_xml_citation_should_not_includes_day_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_day = xml.find("./element-citation/date/day")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_day)
+
+    def test_xml_citation_should_not_includes_month_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "20060000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        expected_year = xml.find("./element-citation/date/year")
+        not_expected_month = xml.find("./element-citation/date/month")
+
+        self.assertEqual(u"2006", expected_year.text)
+        self.assertIsNone(not_expected_month)
+
+    def test_xml_citation_should_not_includes_year_when_number_is_zero(self):
+        fakexylosearticle = Article(
+            {"article": {}, "title": {}, "citations": [{"v65": [{"_": "00000000"}]}]}
+        ).citations[0]
+
+        pxml = ET.Element("ref")
+        pxml.append(ET.Element("element-citation"))
+
+        data = [fakexylosearticle, pxml]
+
+        raw, xml = self._xmlcitation.DatePipe().transform(data)
+
+        not_expected_year = xml.find("./element-citation/date/year")
+
+        self.assertIsNone(not_expected_year)
+
     def test_xml_citation_date_without_data_pipe(self):
 
         fakexylosearticle = Article({'article': {},

pip install -e .
parse_log_pytest
requirements.txt
nose coverage pytest
apt-get update apt-get install -y gcc
3.5.2
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/scieloorg/articles_meta.git@a979fef3549a4bde2128033281fd8be82d89b97e#egg=articlemeta
attrs==22.2.0
certifi==2018.1.18
chardet==3.0.4
coverage==6.2
crossrefapi==1.3.0
hupper==1.0
idna==2.6
importlib-metadata==4.8.3
iniconfig==1.1.1
legendarium==2.0.2
lxml==4.1.1
nose==1.3.7
packaging==21.3
PasteDeploy==1.5.2
picles.plumber==0.11
plaster==1.0
plaster-pastedeploy==0.4.2
pluggy==1.0.0
ply==3.10
py==1.11.0
pymongo==3.6.1
pyparsing==3.1.4
pyramid==1.9.1
pytest==7.0.1
raven==6.5.0
repoze.lru==0.7
requests==2.18.4
thriftpy==0.3.9
-e git+https://github.com/scieloorg/thriftpy-wrap@00e4c3ea4f20bfb2414eef7690d769bde308c0a4#egg=thriftpywrap
tomli==1.2.3
translationstring==1.4
typing_extensions==4.1.1
urllib3==1.22
venusian==1.1.0
WebOb==1.8.0rc1
-e git+https://github.com/scieloorg/xylose.git@56ea916556da5fd743b2c2105247d98a72c79314#egg=xylose
zipp==3.6.0
zope.deprecation==4.3.0
zope.interface==4.4.3

name: articles_meta
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - certifi==2018.1.18
      - chardet==3.0.4
      - coverage==6.2
      - crossrefapi==1.3.0
      - hupper==1.0
      - idna==2.6
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - legendarium==2.0.2
      - lxml==4.1.1
      - nose==1.3.7
      - packaging==21.3
      - pastedeploy==1.5.2
      - picles-plumber==0.11
      - plaster==1.0
      - plaster-pastedeploy==0.4.2
      - pluggy==1.0.0
      - ply==3.10
      - py==1.11.0
      - pymongo==3.6.1
      - pyparsing==3.1.4
      - pyramid==1.9.1
      - pytest==7.0.1
      - raven==6.5.0
      - repoze-lru==0.7
      - requests==2.18.4
      - thriftpy==0.3.9
      - tomli==1.2.3
      - translationstring==1.4
      - typing-extensions==4.1.1
      - urllib3==1.22
      - venusian==1.1.0
      - webob==1.8.0rc1
      - zipp==3.6.0
      - zope-deprecation==4.3.0
      - zope-interface==4.4.3
prefix: /opt/conda/envs/articles_meta

tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_should_not_includes_year_when_number_is_zero tests/test_export_sci.py::XMLCitationTests::test_xml_citation_should_not_includes_year_when_number_is_zero
tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_article_title_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_article_title_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_date_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_date_with_year_and_month_and_day_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_date_with_year_and_month_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_date_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_element_citation_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_fpage_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_fpage_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_id_as_str_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_issue_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_issue_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_lpage_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_lpage_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_person_group_given_names_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_person_group_len_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_person_group_surname_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_person_group_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_setup_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_should_not_includes_day_when_number_is_zero tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_should_not_includes_month_when_number_is_zero tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_source_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_source_without_data_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_volume_pipe tests/test_export_rsps.py::XMLCitationTests::test_xml_citation_volume_without_data_pipe tests/test_export_rsps.py::ExportTests::test_self_uri_tags_should_contain_language_attribute_referencing_pdf_lang tests/test_export_rsps.py::ExportTests::test_self_uri_tags_should_output_english_text_as_default tests/test_export_rsps.py::ExportTests::test_setuppipe_attributes_dtd_version tests/test_export_rsps.py::ExportTests::test_setuppipe_attributes_specific_use tests/test_export_rsps.py::ExportTests::test_setuppipe_element_name tests/test_export_rsps.py::ExportTests::test_xml_article_body_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_article_id_doi_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_article_id_doi_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_article_id_publisher_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_article_id_publisher_pipe_creates_scielo_v2 tests/test_export_rsps.py::ExportTests::test_xml_article_meta_article_id_publisher_pipe_creates_scielo_v2_v3 tests/test_export_rsps.py::ExportTests::test_xml_article_meta_counts_citations_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_counts_pages_invalid_pages_first_gt_last_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_counts_pages_invalid_pages_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_counts_pages_pages_is_none_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_counts_pages_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_issue_info_pipeline_should_look_by_number_in_article_if_property_is_not_present_in_issue tests/test_export_rsps.py::ExportTests::test_xml_article_meta_issue_info_pipeline_should_look_by_volume_in_article_if_property_is_not_present_in_issue tests/test_export_rsps.py::ExportTests::test_xml_article_meta_permission_pipe tests/test_export_rsps.py::ExportTests::test_xml_article_meta_should_contains_self_uris_when_pdf_are_linked_to_article tests/test_export_rsps.py::ExportTests::test_xml_citations_count_pipe tests/test_export_rsps.py::ExportTests::test_xml_citations_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_address_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_country_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_email_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_index_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_institution_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_affiliation_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_article_categories_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_article_categories_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_contrib_group_author_names_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_contrib_group_author_roles_pipe_returns_zero_roles tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_contrib_group_author_without_xrefs_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_contrib_group_author_xrefs_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_contrib_group_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_elocation_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_first_page_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_issue_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_last_page_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_pub_month_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_pub_year_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_10_issue_1_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_10_issue_20_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_10_issue_20_suppl_10_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl_issue_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl_vol_0_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_suppl_vol_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_volume_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_without_elocation_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_without_first_page_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_without_issue_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_without_last_page_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_general_info_without_volume_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_keywords_languages_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_keywords_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_keywords_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_original_language_abstract_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_original_language_abstract_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_title_group_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_translated_abstract_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_translated_title_group_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_meta_translated_title_group_without_data_pipe tests/test_export_rsps.py::ExportTests::test_xmlarticle_pipe tests/test_export_rsps.py::ExportTests::test_xmlclose_pipe tests/test_export_rsps.py::ExportTests::test_xmlfront_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_id_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_meta_abbrev_journal_title_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_meta_electronic_issn_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_meta_journal_title_group_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_meta_print_issn_pipe tests/test_export_rsps.py::ExportTests::test_xmljournal_meta_publisher_pipe tests/test_export_rsps.py::ExportRSPS_XMLArticleMetaIssueInfoPipe_Tests::test_aop tests/test_export_rsps.py::ExportRSPS_XMLArticleMetaIssueInfoPipe_Tests::test_issue tests/test_export_sci.py::XMLCitationTests::test_xml_citation_article_title_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_article_title_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_conference_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_corpauth_doctitle_url_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_date_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_date_with_year_and_month_and_day_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_date_with_year_and_month_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_date_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_element_citation_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_fpage_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_fpage_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_id_as_str_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_issue_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_issue_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_lpage_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_lpage_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_group_given_names_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_group_len_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_group_no_surname_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_group_surname_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_group_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_groups_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_person_groups_pipe_transform_authors_groups tests/test_export_sci.py::XMLCitationTests::test_xml_citation_persongrouppipe_create_author_collab tests/test_export_sci.py::XMLCitationTests::test_xml_citation_persongrouppipe_create_author_name tests/test_export_sci.py::XMLCitationTests::test_xml_citation_setup_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_should_not_includes_day_when_number_is_zero tests/test_export_sci.py::XMLCitationTests::test_xml_citation_should_not_includes_month_when_number_is_zero tests/test_export_sci.py::XMLCitationTests::test_xml_citation_source_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_source_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_url_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_url_with_access_date_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_volume_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_volume_without_data_pipe tests/test_export_sci.py::XMLCitationTests::test_xml_citation_webpage_pipes tests/test_export_sci.py::ExportTests::test_doi_url_paths_are_quoted tests/test_export_sci.py::ExportTests::test_setuppipe_attributes tests/test_export_sci.py::ExportTests::test_setuppipe_element_name tests/test_export_sci.py::ExportTests::test_xml_article_meta_article_id_doi_pipe tests/test_export_sci.py::ExportTests::test_xml_article_meta_article_id_doi_without_data_pipe tests/test_export_sci.py::ExportTests::test_xml_article_meta_article_id_publisher_pipe tests/test_export_sci.py::ExportTests::test_xml_article_meta_unique_article_id_pipe tests/test_export_sci.py::ExportTests::test_xml_citations_count_pipe tests/test_export_sci.py::ExportTests::test_xml_citations_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_affiliation_country_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_affiliation_index_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_affiliation_institution_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_affiliation_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_article_categories_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_article_categories_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_contrib_group_author_names_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_contrib_group_author_roles_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_contrib_group_author_without_xrefs_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_contrib_group_author_xrefs_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_contrib_group_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_elocation_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_first_page_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_fulltext_uri_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_issue_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_issue_uri_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_journal_uri_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_last_page_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_pub_month_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_pub_year_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_0_issue_1_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_10_issue_20_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl__vol_10_issue_20_suppl_10_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl_issue_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl_vol_0_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_suppl_vol_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_volume_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_without_elocation_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_without_first_page_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_without_issue_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_without_last_page_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_general_info_without_volume_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_keywords_languages_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_keywords_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_keywords_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_original_language_abstract_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_original_language_abstract_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_title_group_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_translated_abstract_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_translated_title_group_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_meta_translated_title_group_without_data_pipe tests/test_export_sci.py::ExportTests::test_xmlarticle_pipe tests/test_export_sci.py::ExportTests::test_xmlclose_pipe tests/test_export_sci.py::ExportTests::test_xmlfront_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_id_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_collection_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_issn_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_journal_title_group_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_publisher_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_publishers_get_first_publisher_name_pipe tests/test_export_sci.py::ExportTests::test_xmljournal_meta_publishers_join_publisher_names_pipe tests/test_export_sci.py::ExportSci_XMLArticleMetaIssueInfoPipe_Tests::test_aop tests/test_export_sci.py::ExportSci_XMLArticleMetaIssueInfoPipe_Tests::test_issue
articlemeta/export_sci.py articlemeta/export_rsps.py
articlemeta/export_sci.py articlemeta/export_rsps.py