Skip to content

Commit 60d10eb

Browse files
authored
Merge pull request #22 from MITLibraries/aspace-map
Aspace mapping changes
2 parents e2bbc46 + 30cd18c commit 60d10eb

File tree

10 files changed

+45
-55
lines changed

10 files changed

+45
-55
lines changed

config/aspace_mapping.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,29 @@
99
"language": "en_US",
1010
"delimiter": ""
1111
},
12-
"dc.relation.isversionof": {
12+
"source_system_identifier": {
1313
"csv_field_name": "uri",
1414
"language": null,
1515
"delimiter": ""
16+
},
17+
"dc.contributor.author": {
18+
"csv_field_name": "author",
19+
"language": null,
20+
"delimiter": "|"
21+
},
22+
"dc.description": {
23+
"csv_field_name": "description",
24+
"language": "en_US",
25+
"delimiter": ""
26+
},
27+
"dc.rights": {
28+
"csv_field_name": "rights_statement",
29+
"language": "en_US",
30+
"delimiter": ""
31+
},
32+
"dc.rights.uri": {
33+
"csv_field_name": "rights_uri",
34+
"language": null,
35+
"delimiter": ""
1636
}
1737
}

dsaps/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,10 @@ def from_row(cls, row, field_map):
205205
if f == 'file_identifier':
206206
file_identifier = field
207207
continue # file_identifier is not included in DSpace metadata
208-
if f == 'dc.relation.isversionof':
208+
if f == 'source_system_identifier':
209209
source_system_identifier = field
210+
continue # source_system_identifier is not included in DSpace
211+
# metadata
210212
delimiter = field_map[f]['delimiter']
211213
language = field_map[f]['language']
212214
if delimiter:

tests/conftest.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,6 @@ def aspace_mapping():
4848
yield mapping
4949

5050

51-
@pytest.fixture()
52-
def standard_mapping():
53-
with open('tests/fixtures/standard_mapping.json') as f:
54-
mapping = json.load(f)
55-
yield mapping
56-
57-
5851
@pytest.fixture()
5952
def output_dir(tmp_path):
6053
output_dir = tmp_path / 'output'
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
uri,title,file_identifier,authors
2-
/repo/0/ao/456,Tast Item,tast,"Smith, John|Smith, Jane"
3-
/repo/0/ao/123,Test Item,test,"Smith, Jane"
1+
uri,title,file_identifier,author,description,rights_statement,rights_uri
2+
/repo/0/ao/456,Tast Item,tast,"Smith, John|Smith, Jane","More info at /repo/0/ao/456","Totally Free","http://free.gov"
3+
/repo/0/ao/123,Test Item,test,"Smith, Jane","More info at /repo/0/ao/123","Totally Free","http://free.gov"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
uri,title,file_identifier,authors
2-
/repo/0/ao/123,Test Item,test,"Smith, Jane"
1+
uri,title,file_identifier,author,description,rights_statement,rights_uri
2+
/repo/0/ao/123,Test Item,test,"Smith, Jane","More info at /repo/0/ao/123","Totally Free","http://free.gov"

tests/fixtures/metadata_delim.csv

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/fixtures/standard_mapping.json

Lines changed: 0 additions & 22 deletions
This file was deleted.

tests/test_cli.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ def test_additems(runner, input_dir):
99
'--password', '1234',
1010
'additems',
1111
'--metadata-csv',
12-
'tests/fixtures/metadata_delim.csv',
13-
'--field-map',
14-
'tests/fixtures/standard_mapping.json',
12+
'tests/fixtures/aspace_metadata_delimited.csv',
13+
'--field-map', 'config/aspace_mapping.json',
1514
'--content-directory', input_dir,
1615
'--file-type', 'pdf',
1716
'--collection-handle', '333.3333'])
@@ -25,9 +24,8 @@ def test_additems(runner, input_dir):
2524
'--collection-name', 'Test Collection',
2625
'additems',
2726
'--metadata-csv',
28-
'tests/fixtures/metadata_delim.csv',
29-
'--field-map',
30-
'tests/fixtures/standard_mapping.json',
27+
'tests/fixtures/aspace_metadata_delimited.csv',
28+
'--field-map', 'config/aspace_mapping.json',
3129
'--content-directory', input_dir,
3230
'--file-type', 'pdf'])
3331
assert result.exit_code == 0
@@ -53,7 +51,7 @@ def test_reconcile(runner, input_dir, output_dir):
5351
'--password', '1234',
5452
'reconcile',
5553
'--metadata-csv',
56-
'tests/fixtures/metadata_delim.csv',
54+
'tests/fixtures/aspace_metadata_delimited.csv',
5755
'--output-directory', output_dir,
5856
'--content-directory', input_dir,
5957
'--file-type', 'pdf'

tests/test_helpers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_create_ingest_report(runner, output_dir):
3838

3939
def test_create_metadata_id_list(input_dir):
4040
"""Test create_metadata_id_list function."""
41-
metadata_path = 'tests/fixtures/metadata_delim.csv'
41+
metadata_path = 'tests/fixtures/aspace_metadata_delimited.csv'
4242
metadata_ids = helpers.create_metadata_id_list(metadata_path)
4343
assert 'test' in metadata_ids
4444
assert 'tast' in metadata_ids
@@ -65,10 +65,10 @@ def test_match_metadata_to_files():
6565
def test_update_metadata_csv(input_dir, output_dir):
6666
"""Test update_metadata_csv function."""
6767
metadata_matches = ['test']
68-
helpers.update_metadata_csv('tests/fixtures/metadata_delim.csv',
68+
helpers.update_metadata_csv('tests/fixtures/aspace_metadata_delimited.csv',
6969
output_dir, metadata_matches)
70-
with open(f'{output_dir}updated-metadata_delim.csv') as csvfile2:
71-
reader = csv.DictReader(csvfile2)
70+
with open(f'{output_dir}updated-aspace_metadata_delimited.csv') as csvfile:
71+
reader = csv.DictReader(csvfile)
7272
for row in reader:
7373
assert row['uri'] == '/repo/0/ao/123'
7474
assert row['title'] == 'Test Item'

tests/test_models.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,17 @@ def test_item_bitstreams_from_directory(input_dir):
121121
assert item.bitstreams[1].name == 'test_02.pdf'
122122

123123

124-
def test_item_from_row(aspace_delimited_csv, standard_mapping):
124+
def test_item_from_row(aspace_delimited_csv, aspace_mapping):
125125
row = next(aspace_delimited_csv)
126-
item = models.Item.from_row(row, standard_mapping)
126+
item = models.Item.from_row(row, aspace_mapping)
127127
assert attr.asdict(item)['metadata'] == [
128128
{'key': 'dc.title', 'value': 'Tast Item', 'language': 'en_US'},
129-
{'key': 'dc.relation.isversionof', 'value': '/repo/0/ao/456',
130-
'language': None},
131129
{'key': 'dc.contributor.author', 'value': 'Smith, John',
132130
'language': None},
133131
{'key': 'dc.contributor.author', 'value': 'Smith, Jane',
134-
'language': None}
132+
'language': None},
133+
{'key': 'dc.description', 'value': 'More info at /repo/0/ao/456',
134+
'language': 'en_US'},
135+
{'key': 'dc.rights', 'value': 'Totally Free', 'language': 'en_US'},
136+
{'key': 'dc.rights.uri', 'value': 'http://free.gov', 'language': None}
135137
]

0 commit comments

Comments
 (0)