Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion config/aspace_mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,29 @@
"language": "en_US",
"delimiter": ""
},
"dc.relation.isversionof": {
"source_system_identifier": {
"csv_field_name": "uri",
"language": null,
"delimiter": ""
},
"dc.contributor.author": {
"csv_field_name": "author",
"language": null,
"delimiter": "|"
},
"dc.description": {
"csv_field_name": "description",
"language": "en_US",
"delimiter": ""
},
"dc.rights": {
"csv_field_name": "rights_statement",
"language": "en_US",
"delimiter": ""
},
"dc.rights.uri": {
"csv_field_name": "rights_uri",
"language": null,
"delimiter": ""
}
}
4 changes: 3 additions & 1 deletion dsaps/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,10 @@ def from_row(cls, row, field_map):
if f == 'file_identifier':
file_identifier = field
continue # file_identifier is not included in DSpace metadata
if f == 'dc.relation.isversionof':
if f == 'source_system_identifier':
source_system_identifier = field
continue # source_system_identifier is not included in DSpace
# metadata
delimiter = field_map[f]['delimiter']
language = field_map[f]['language']
if delimiter:
Expand Down
7 changes: 0 additions & 7 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,6 @@ def aspace_mapping():
yield mapping


@pytest.fixture()
def standard_mapping():
with open('tests/fixtures/standard_mapping.json') as f:
mapping = json.load(f)
yield mapping


@pytest.fixture()
def output_dir(tmp_path):
output_dir = tmp_path / 'output'
Expand Down
6 changes: 3 additions & 3 deletions tests/fixtures/aspace_metadata_delimited.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
uri,title,file_identifier,authors
/repo/0/ao/456,Tast Item,tast,"Smith, John|Smith, Jane"
/repo/0/ao/123,Test Item,test,"Smith, Jane"
uri,title,file_identifier,author,description,rights_statement,rights_uri
/repo/0/ao/456,Tast Item,tast,"Smith, John|Smith, Jane","More info at /repo/0/ao/456","Totally Free","http://free.gov"
/repo/0/ao/123,Test Item,test,"Smith, Jane","More info at /repo/0/ao/123","Totally Free","http://free.gov"
4 changes: 2 additions & 2 deletions tests/fixtures/aspace_metadata_no_delimiter.csv
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
uri,title,file_identifier,authors
/repo/0/ao/123,Test Item,test,"Smith, Jane"
uri,title,file_identifier,author,description,rights_statement,rights_uri
/repo/0/ao/123,Test Item,test,"Smith, Jane","More info at /repo/0/ao/123","Totally Free","http://free.gov"
3 changes: 0 additions & 3 deletions tests/fixtures/metadata_delim.csv

This file was deleted.

22 changes: 0 additions & 22 deletions tests/fixtures/standard_mapping.json

This file was deleted.

12 changes: 5 additions & 7 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ def test_additems(runner, input_dir):
'--password', '1234',
'additems',
'--metadata-csv',
'tests/fixtures/metadata_delim.csv',
'--field-map',
'tests/fixtures/standard_mapping.json',
'tests/fixtures/aspace_metadata_delimited.csv',
'--field-map', 'config/aspace_mapping.json',
'--content-directory', input_dir,
'--file-type', 'pdf',
'--collection-handle', '333.3333'])
Expand All @@ -25,9 +24,8 @@ def test_additems(runner, input_dir):
'--collection-name', 'Test Collection',
'additems',
'--metadata-csv',
'tests/fixtures/metadata_delim.csv',
'--field-map',
'tests/fixtures/standard_mapping.json',
'tests/fixtures/aspace_metadata_delimited.csv',
'--field-map', 'config/aspace_mapping.json',
'--content-directory', input_dir,
'--file-type', 'pdf'])
assert result.exit_code == 0
Expand All @@ -53,7 +51,7 @@ def test_reconcile(runner, input_dir, output_dir):
'--password', '1234',
'reconcile',
'--metadata-csv',
'tests/fixtures/metadata_delim.csv',
'tests/fixtures/aspace_metadata_delimited.csv',
'--output-directory', output_dir,
'--content-directory', input_dir,
'--file-type', 'pdf'
Expand Down
8 changes: 4 additions & 4 deletions tests/test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def test_create_ingest_report(runner, output_dir):

def test_create_metadata_id_list(input_dir):
"""Test create_metadata_id_list function."""
metadata_path = 'tests/fixtures/metadata_delim.csv'
metadata_path = 'tests/fixtures/aspace_metadata_delimited.csv'
metadata_ids = helpers.create_metadata_id_list(metadata_path)
assert 'test' in metadata_ids
assert 'tast' in metadata_ids
Expand All @@ -65,10 +65,10 @@ def test_match_metadata_to_files():
def test_update_metadata_csv(input_dir, output_dir):
"""Test update_metadata_csv function."""
metadata_matches = ['test']
helpers.update_metadata_csv('tests/fixtures/metadata_delim.csv',
helpers.update_metadata_csv('tests/fixtures/aspace_metadata_delimited.csv',
output_dir, metadata_matches)
with open(f'{output_dir}updated-metadata_delim.csv') as csvfile2:
reader = csv.DictReader(csvfile2)
with open(f'{output_dir}updated-aspace_metadata_delimited.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
assert row['uri'] == '/repo/0/ao/123'
assert row['title'] == 'Test Item'
Expand Down
12 changes: 7 additions & 5 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,17 @@ def test_item_bitstreams_from_directory(input_dir):
assert item.bitstreams[1].name == 'test_02.pdf'


def test_item_from_row(aspace_delimited_csv, standard_mapping):
def test_item_from_row(aspace_delimited_csv, aspace_mapping):
row = next(aspace_delimited_csv)
item = models.Item.from_row(row, standard_mapping)
item = models.Item.from_row(row, aspace_mapping)
assert attr.asdict(item)['metadata'] == [
{'key': 'dc.title', 'value': 'Tast Item', 'language': 'en_US'},
{'key': 'dc.relation.isversionof', 'value': '/repo/0/ao/456',
'language': None},
{'key': 'dc.contributor.author', 'value': 'Smith, John',
'language': None},
{'key': 'dc.contributor.author', 'value': 'Smith, Jane',
'language': None}
'language': None},
{'key': 'dc.description', 'value': 'More info at /repo/0/ao/456',
'language': 'en_US'},
{'key': 'dc.rights', 'value': 'Totally Free', 'language': 'en_US'},
{'key': 'dc.rights.uri', 'value': 'http://free.gov', 'language': None}
]