Skip to content

Commit

Permalink
Updates based on discussion inPR #42
Browse files Browse the repository at this point in the history
* Update electronic holdings extraction code to capture location and format
* Update fixtures and unit tests
  • Loading branch information
ehanson8 committed Dec 22, 2022
1 parent 7ab13a6 commit 541bb09
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 1 deletion.
2 changes: 2 additions & 0 deletions tests/fixtures/marc/marc_record_all_fields.xml
Original file line number Diff line number Diff line change
Expand Up @@ -461,11 +461,13 @@
<subfield code="i">Available from 06/01/2001 volume: 1 issue: 1.</subfield>
<subfield code="j">HeinOnline U.S. Congressional Documents Library</subfield>
<subfield code="k">HeinOnline</subfield>
<subfield code="f">http://BLCMIT.NaxosMusicLibrary.com/catalogue/item.asp?cid=ACC24383</subfield>
</datafield>
<datafield tag="986" ind1=" " ind2=" ">
<subfield code="k">Alexander Street Press Parent Record</subfield>
<subfield code="j">Music Online: Classical Music Library - United States</subfield>
<subfield code="j">Music Online: Classical Music Library</subfield>
<subfield code="f">http://BLCMIT.NaxosMusicLibrary.com/catalogue/item.asp?cid=19029653</subfield>
</datafield>
</record>
</collection>
Original file line number Diff line number Diff line change
Expand Up @@ -857,9 +857,11 @@
<datafield tag="986" ind1=" " ind2=" ">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="f"></subfield>
<subfield code="i"></subfield>
<subfield code="j"></subfield>
<subfield code="k"></subfield>
<subfield code="f">f</subfield>
<subfield code="i">i</subfield>
<subfield code="j">j</subfield>
<subfield code="k">k</subfield>
Expand Down
10 changes: 10 additions & 0 deletions tests/test_marc.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,13 +166,21 @@ def test_marc_record_all_fields_transform_correctly():
),
timdex.Holding(
collection="HeinOnline U.S. Congressional Documents Library",
format="electronic resource",
location=(
"http://BLCMIT.NaxosMusicLibrary.com/catalogue/item.asp?cid=ACC24383"
),
note="Available from 06/01/2001 volume: 1 issue: 1., HeinOnline",
),
timdex.Holding(
collection=(
"Music Online: Classical Music Library - United States, Music "
"Online: Classical Music Library"
),
format="electronic resource",
location=(
"http://BLCMIT.NaxosMusicLibrary.com/catalogue/item.asp?cid=19029653"
),
note="Alexander Street Press Parent Record",
),
],
Expand Down Expand Up @@ -522,6 +530,8 @@ def test_marc_record_attribute_and_subfield_variations_transforms_correctly():
),
timdex.Holding(
collection="j",
format="electronic resource",
location="f",
note="i, k",
),
],
Expand Down
7 changes: 6 additions & 1 deletion transmogrifier/sources/marc.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,18 @@ def get_optional_fields(self, xml: Tag) -> dict:
holding_collection_value = self.create_subfield_value_string_from_datafield(
datafield, "j", ", "
)
holding_location_value = self.create_subfield_value_string_from_datafield(
datafield, "f", ", "
)
holding_note_value = self.create_subfield_value_string_from_datafield(
datafield, "ik", ", "
)
if holding_collection_value or holding_note_value:
if holding_collection_value or holding_location_value or holding_note_value:
fields.setdefault("holdings", []).append(
timdex.Holding(
collection=holding_collection_value or None,
format="electronic resource",
location=holding_location_value or None,
note=holding_note_value or None,
)
)
Expand Down

0 comments on commit 541bb09

Please sign in to comment.