def test_do_relations_program_citation(self):
     article = Article("10.7554/eLife.00666")
     citation = Citation()
     citation.publication_type = "data"
     citation.doi = "10.7554/eLife.00666"
     article.ref_list = [citation]
     do_result = related.do_relations_program(article)
     self.assertTrue(do_result)
 def test_ref_list_citation_with_no_id(self):
     """for test coverage an article with a ref_list with a citation that has no id attribute"""
     doi = "10.7554/eLife.00666"
     title = "Test article"
     article = Article(doi, title)
     citation = Citation()
     citation.article_title = "An article title"
     article.ref_list = [citation]
     c_xml = generate.build_crossref_xml([article])
     crossref_xml_string = c_xml.output_xml()
     self.assertTrue('<citation key="1">' in crossref_xml_string)
 def test_ref_list_citation_elocation_id(self):
     """for test coverage for schema where elocation_id goes into first_page element"""
     # load a config and override the value
     raw_config_object = raw_config("elife")
     original_schema_version = raw_config_object.get(
         "crossref_schema_version")
     raw_config_object["crossref_schema_version"] = "4.4.0"
     crossref_config = parse_raw_config(raw_config_object)
     doi = "10.7554/eLife.00666"
     title = "Test article"
     article = Article(doi, title)
     citation = Citation()
     citation.elocation_id = "e00003"
     article.ref_list = [citation]
     c_xml = generate.CrossrefXML([article], crossref_config, None, True)
     crossref_xml_string = c_xml.output_xml()
     self.assertTrue(
         "<first_page>e00003</first_page>" in crossref_xml_string)
     # now set the config back to normal
     raw_config_object["crossref_schema_version"] = original_schema_version
 def test_ref_list_data_citation_with_pmid(self):
     """
     for test coverage an article with a ref_list with a
     data citation that has a pmid attribute
     """
     doi = "10.7554/eLife.00666"
     title = "Test article"
     article = Article(doi, title)
     citation = Citation()
     citation.data_title = "An data title"
     citation.publication_type = "data"
     citation.pmid = "pmid"
     article.ref_list = [citation]
     expected_contains = (
         "<rel:program><rel:related_item><rel:description>An data title</rel:description>"
         +
         '<rel:inter_work_relation identifier-type="pmid" relationship-type="references">'
         +
         "pmid</rel:inter_work_relation></rel:related_item></rel:program>")
     # generate
     c_xml = generate.build_crossref_xml([article])
     crossref_xml_string = c_xml.output_xml()
     # test assertion
     self.assertTrue(expected_contains in crossref_xml_string)