Skip to content

Commit

Permalink
Add tests to account for lack of name type attribute
Browse files Browse the repository at this point in the history
* Modify identifier url methods to account for lack of type attribute
* Add unit tests and fixtures where type attribute is missing
  • Loading branch information
ehanson8 committed May 9, 2022
1 parent 9f7d1c4 commit 0faf514
Show file tree
Hide file tree
Showing 5 changed files with 221 additions and 2 deletions.
14 changes: 14 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,13 @@ def datacite_jpal_record_unknown_name_identifier():
)


@pytest.fixture()
def datacite_jpal_record_no_name_identifier_scheme():
return parse_xml_records(
"tests/fixtures/datacite/jpal_record_no_name_identifier_scheme.xml"
)


@pytest.fixture()
def datacite_jpal_record_related_item_identifier_doi_type():
return parse_xml_records(
Expand All @@ -88,6 +95,13 @@ def datacite_jpal_record_related_item_identifier_unknown_type():
)


@pytest.fixture()
def datacite_jpal_record_related_item_no_identifier_type():
return parse_xml_records(
"tests/fixtures/datacite/jpal_record_related_item_no_identifier_type.xml"
)


@pytest.fixture()
def datacite_record_partial():
return partial(
Expand Down
75 changes: 75 additions & 0 deletions tests/fixtures/datacite/jpal_record_no_name_identifier_scheme.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<record xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<identifier>doi:10.7910/DVN/19PPE7</identifier>
<datestamp>2022-03-26T06:04:55Z</datestamp>
<setSpec>Jameel_Poverty_Action_Lab</setSpec>
<setSpec>IQSS</setSpec>
</header>
<metadata>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
<identifier identifierType="DOI">10.7910/DVN/19PPE7</identifier>
<titles>
<title>The Impact of Maternal Literacy and Participation Programs: Evidence from a Randomized Evaluation in India</title>
</titles>
<publisher>Harvard Dataverse</publisher>
<publicationYear>2017</publicationYear>
<subjects>
<subject>Social Sciences</subject>
<subject>Adult education, education inputs, field experiments</subject>
</subjects>
<contributors>
<contributor contributorType="ContactPerson">
<contributorName nameType="Personal">Banerji, Rukmini</contributorName>
<givenName>Rukmini</givenName>
<familyName>Banerji</familyName>
<nameIdentifier>0000-0000-0000-0000</nameIdentifier>
<affiliation>Pratham and ASER Centre</affiliation>
</contributor>
</contributors>
<dates>
<date dateType="Submitted">2017-02-27</date>
<date dateType="Updated">2019-06-24</date>
</dates>
<resourceType resourceTypeGeneral="Dataset">Survey Data</resourceType>
<relatedIdentifiers>
<relatedIdentifier relationType="IsCitedBy" relatedIdentifierType="DOI">10.1257/app.20150390</relatedIdentifier>
</relatedIdentifiers>
<sizes>
<size>124903</size>
<size>48958</size>
<size>199070</size>
<size>186674</size>
<size>139605</size>
<size>97304</size>
<size>9907</size>
<size>178534602</size>
<size>4032103</size>
<size>43589</size>
<size>15697</size>
</sizes>
<formats>
<format>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</format>
<format>application/pdf</format>
<format>application/pdf</format>
<format>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</format>
<format>application/pdf</format>
<format>application/x-stata-syntax</format>
<format>application/x-stata</format>
<format>application/x-stata</format>
<format>application/zip</format>
<format>application/pdf</format>
<format>application/pdf</format>
</formats>
<version>1.2</version>
<rightsList>
<rights rightsURI="info:eu-repo/semantics/openAccess" />
<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0">CC0 1.0</rights>
</rightsList>
<descriptions>
<description descriptionType="Abstract">Using a randomized field experiment in India, we evaluate the effectiveness of adult literacy and parental involvement interventions in improving children's learning. Households were assigned to receive either adult literacy (language and math) classes for mothers, training for mothers on how to enhance their children's learning at home, or a combination of the two programs. All three interventions had significant but modest impacts on childrens math scores. The interventions also increased mothers' test scores in both language and math, as well as a range of other outcomes reflecting greater involvement of mothers in their children's education.</description>
</descriptions>
<geoLocations />
</resource>
</metadata>
</record>
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<record xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<identifier>doi:10.7910/DVN/19PPE7</identifier>
<datestamp>2022-03-26T06:04:55Z</datestamp>
<setSpec>Jameel_Poverty_Action_Lab</setSpec>
<setSpec>IQSS</setSpec>
</header>
<metadata>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
<identifier identifierType="DOI">10.7910/DVN/19PPE7</identifier>
<creators>
<creator>
<creatorName nameType="Personal">Banerji, Rukmini</creatorName>
<givenName>Rukmini</givenName>
<familyName>Banerji</familyName>
<affiliation>Pratham and ASER Centre</affiliation>
<nameIdentifier nameIdentifierScheme="ORCID">0000-0000-0000-0000</nameIdentifier>
</creator>
<creator>
<creatorName nameType="Personal">Berry, James</creatorName>
<givenName>James</givenName>
<familyName>Berry</familyName>
<affiliation>University of Delaware</affiliation>
</creator>
<creator>
<creatorName nameType="Personal">Shotland, Marc</creatorName>
<givenName>Marc</givenName>
<familyName>Shotland</familyName>
<affiliation>Abdul Latif Jameel Poverty Action Lab</affiliation>
</creator>
</creators>
<titles>
<title>The Impact of Maternal Literacy and Participation Programs</title>
<title titleType="AlternativeTitle">An Alternative Title</title>
<title titleType="Subtitle">Baseline Data</title>
</titles>
<publisher>Harvard Dataverse</publisher>
<publicationYear>2017</publicationYear>
<subjects>
<subject>Social Sciences</subject>
<subject subjectScheme="LCSH">Adult education, education inputs, field experiments</subject>
</subjects>
<contributors>
<contributor contributorType="ContactPerson">
<contributorName nameType="Personal">Banerji, Rukmini</contributorName>
<givenName>Rukmini</givenName>
<familyName>Banerji</familyName>
<nameIdentifier nameIdentifierScheme="ORCID">0000-0000-0000-0000</nameIdentifier>
<affiliation>Pratham and ASER Centre</affiliation>
</contributor>
</contributors>
<dates>
<date dateType="Submitted">2017-02-27</date>
<date dateType="Updated" dateInformation="This was updated on this date">2019-06-24</date>
</dates>
<resourceType resourceTypeGeneral="Dataset">Survey Data</resourceType>
<relatedIdentifiers>
<relatedIdentifier relationType="IsCitedBy">0000.0000</relatedIdentifier>
</relatedIdentifiers>
<language>en_US</language>
<sizes>
<size>124903</size>
<size>48958</size>
<size>199070</size>
<size>186674</size>
<size>139605</size>
<size>97304</size>
<size>9907</size>
<size>178534602</size>
<size>4032103</size>
<size>43589</size>
<size>15697</size>
</sizes>
<formats>
<format>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</format>
<format>application/pdf</format>
<format>application/pdf</format>
<format>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</format>
<format>application/pdf</format>
<format>application/x-stata-syntax</format>
<format>application/x-stata</format>
<format>application/x-stata</format>
<format>application/zip</format>
<format>application/pdf</format>
<format>application/pdf</format>
</formats>
<version>1.2</version>
<rightsList>
<rights rightsURI="info:eu-repo/semantics/openAccess" />
<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0">CC0 1.0</rights>
</rightsList>
<descriptions>
<description descriptionType="Abstract">Using a randomized field experiment in India, we evaluate the effectiveness of adult literacy and parental involvement interventions in improving children's learning. Households were assigned to receive either adult literacy (language and math) classes for mothers, training for mothers on how to enhance their children's learning at home, or a combination of the two programs. All three interventions had significant but modest impacts on childrens math scores. The interventions also increased mothers' test scores in both language and math, as well as a range of other outcomes reflecting greater involvement of mothers in their children's education.</description>
<description descriptionType="TechnicalInfo">Stata, 13</description>
</descriptions>
<geoLocations>
<geoLocation>
<geoLocationPlace>A point on the globe</geoLocationPlace>
</geoLocation>
</geoLocations>
<fundingReferences>
<fundingReference>
<funderName>3ie, Nike Foundation</funderName>
<funderIdentifier funderIdentifierType="Crossref FunderID">0987</funderIdentifier>
<awardNumber awardURI="http://awards.example/7689">OW1/1012 (3ie)</awardNumber>
</fundingReference>
</fundingReferences>
</resource>
</metadata>
</record>
19 changes: 19 additions & 0 deletions tests/test_datacite.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,15 @@ def test_generate_name_identifier_url_unknown_scheme(
assert next(output_records).contributors[0].identifier == ["0000-0000-0000-0000"]


def test_generate_name_identifier_url_no_identifier_scheme(
datacite_record_partial, datacite_jpal_record_no_name_identifier_scheme
):
output_records = datacite_record_partial(
input_records=datacite_jpal_record_no_name_identifier_scheme
)
assert next(output_records).contributors[0].identifier == ["0000-0000-0000-0000"]


def test_generate_related_item_identifier_url_doi_type(
datacite_record_partial, datacite_jpal_record_related_item_identifier_doi_type
):
Expand All @@ -278,3 +287,13 @@ def test_generate_related_item_identifier_url_unknown_type(
input_records=datacite_jpal_record_related_item_identifier_unknown_type
)
assert next(output_records).related_items[0].uri == "0000.0000"


def test_generate_related_item_identifier_no_identifier_type(
datacite_record_partial,
datacite_jpal_record_related_item_no_identifier_type,
):
output_records = datacite_record_partial(
input_records=datacite_jpal_record_related_item_no_identifier_type
)
assert next(output_records).related_items[0].uri == "0000.0000"
4 changes: 2 additions & 2 deletions transmogrifier/sources/datacite.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ def generate_name_identifier_url(cls, name_identifier):
name_identifier: An BeautifulSoup Tag Tag representing a Datacite
nameIdentifier XML field.
"""
if name_identifier["nameIdentifierScheme"] == "ORCID":
if name_identifier.get("nameIdentifierScheme") == "ORCID":
base_url = "https://orcid.org/"
else:
base_url = ""
Expand All @@ -308,7 +308,7 @@ def generate_related_item_identifier_url(cls, related_item_identifier):
related_item_identifier: An BeautifulSoup Tag Tag representing a Datacite
relatedIdentifier XML field.
"""
if related_item_identifier["relatedIdentifierType"] == "DOI":
if related_item_identifier.get("relatedIdentifierType") == "DOI":
base_url = "https://doi.org/"
else:
base_url = ""
Expand Down

0 comments on commit 0faf514

Please sign in to comment.