Skip to content

Commit

Permalink
PR updates based on discussion in #27
Browse files Browse the repository at this point in the history
  • Loading branch information
ehanson8 committed Dec 15, 2021
1 parent 1f7d3a3 commit be0975a
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
21 changes: 20 additions & 1 deletion awd/crossref.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,28 @@ def create_dspace_metadata_from_dict(value_dict, metadata_mapping_path):
def is_valid_dspace_metadata(dspace_metadata):
"""Validate that the metadata follows the format expected by DSpace."""
validation_status = False
approved_metadata_fields = [
"dc.contributor.author",
"dc.relation.journal",
"dc.identifier.issn",
"mit.journal.issue",
"dc.date.issued",
"dc.language",
"dc.title.alternative",
"dc.publisher",
"dc.title.alternative",
"dc.title.alternative",
"dc.title",
"dc.relation.isversionof",
"mit.journal.volume",
]
if dspace_metadata.get("metadata") is not None:
for element in dspace_metadata["metadata"]:
if element.get("key") is not None and element.get("value") is not None:
if (
element.get("key") is not None
and element.get("value") is not None
and element.get("key") in approved_metadata_fields
):
validation_status = True
logger.debug("Valid DSpace metadata generated")
else:
Expand Down
13 changes: 10 additions & 3 deletions tests/test_crossref.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,23 @@ def test_transform_dict_with_metadata_mapping_full_metadata(
assert metadata == dspace_metadata


def test_is_valid_dspace_metadata_failure():
def test_is_valid_dspace_metadata_success():
validation_status = crossref.is_valid_dspace_metadata(
{"metadata": [{"key": "dc.title", "value": "123"}]}
)
assert validation_status is True


def test_is_valid_dspace_metadata_no_metadata():
validation_status = crossref.is_valid_dspace_metadata({})
assert validation_status is False


def test_is_valid_dspace_metadata_success():
def test_is_valid_dspace_metadata_incorrect_fields():
validation_status = crossref.is_valid_dspace_metadata(
{"metadata": [{"key": "dc.example", "value": "123"}]}
)
assert validation_status is True
assert validation_status is False


def test_is_valid_response_failure():
Expand Down

0 comments on commit be0975a

Please sign in to comment.