Skip to content

Commit

Permalink
TIMX-18-marc-transform-initial-methods
Browse files Browse the repository at this point in the history
Why these changes are being introduced:
* Adding initial methods for Marc class

How this addresses that need:
* Add Marc class with create_subfield_value_list_from_datafield, create_subfield_value_string_from_datafield, get_main_titles, get_source_record_id methods and a partial get_optional_fields method
* Add fixtures and unit tests for expected data scenarios

Side effects of this change:
* None

Relevant ticket(s):
* https://mitlibraries.atlassian.net/browse/TIMX-18
  • Loading branch information
ehanson8 committed Oct 11, 2022
1 parent bacacf0 commit cb8df2f
Show file tree
Hide file tree
Showing 6 changed files with 621 additions and 0 deletions.
43 changes: 43 additions & 0 deletions tests/fixtures/marc/marc_record_all_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<collection>
<record>
<leader>03282nam 2200721Ki 4500</leader>
<controlfield tag="008">170906s2016 fr mun| o e zxx d</controlfield>
<controlfield tag="001">990027185640106761</controlfield>
<datafield tag="050" ind1=" " ind2="0">
<subfield code="a">MA123.4</subfield>
</datafield>
<datafield tag="082" ind1="0" ind2=" ">
<subfield code="a">123.45</subfield>
</datafield>
<datafield tag="130" ind1="0" ind2="0">
<subfield code="a">Main Entry</subfield>
<subfield code="d">Uniform Title.</subfield>
</datafield>
<datafield tag="240" ind1="0" ind2="0">
<subfield code="a">Uniform</subfield>
<subfield code="d">Title.</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">Célébration :</subfield>
<subfield code="b">10 siècles de musique de noël.</subfield>
</datafield>
<datafield tag="246" ind1="0" ind2="0">
<subfield code="a">Varying Form</subfield>
<subfield code="b">Of Title.</subfield>
</datafield>
<datafield tag="264" ind1=" " ind2="1">
<subfield code="a">France :</subfield>
<subfield code="b">Aparte,</subfield>
<subfield code="c">[2016]</subfield>
</datafield>
<datafield tag="730" ind1="0" ind2="0">
<subfield code="a">Added Entry</subfield>
<subfield code="n">Uniform Title.</subfield>
</datafield>
<datafield tag="740" ind1="0" ind2="0">
<subfield code="a">Added Entry</subfield>
<subfield code="n">Uncontrolled Related/Analytical Title.</subfield>
</datafield>
</record>
</collection>
169 changes: 169 additions & 0 deletions tests/fixtures/marc/marc_record_attribute_and_subfield_variations.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8"?>
<collection>
<record>
<controlfield tag="001">990027185640106761</controlfield>
<leader></leader>
<controlfield></controlfield>
<controlfield tag="008"></controlfield>
<controlfield tag="001">990027185640106761</controlfield>
<datafield></datafield>
<datafield tag="050">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="a">a</subfield>
</datafield>
<datafield tag="082">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="a">a</subfield>
</datafield>
<datafield tag="130">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="d"></subfield>
<subfield code="f"></subfield>
<subfield code="g"></subfield>
<subfield code="h"></subfield>
<subfield code="k"></subfield>
<subfield code="l"></subfield>
<subfield code="m"></subfield>
<subfield code="n"></subfield>
<subfield code="o"></subfield>
<subfield code="p"></subfield>
<subfield code="r"></subfield>
<subfield code="s"></subfield>
<subfield code="t"></subfield>
<subfield code="a">a</subfield>
<subfield code="d">d</subfield>
<subfield code="f">f</subfield>
<subfield code="g">g</subfield>
<subfield code="h">h</subfield>
<subfield code="k">k</subfield>
<subfield code="l">l</subfield>
<subfield code="m">m</subfield>
<subfield code="n">n</subfield>
<subfield code="o">o</subfield>
<subfield code="p">p</subfield>
<subfield code="r">r</subfield>
<subfield code="s">s</subfield>
<subfield code="t">t</subfield>
</datafield>
<datafield tag="240">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="d"></subfield>
<subfield code="f"></subfield>
<subfield code="g"></subfield>
<subfield code="h"></subfield>
<subfield code="k"></subfield>
<subfield code="l"></subfield>
<subfield code="m"></subfield>
<subfield code="n"></subfield>
<subfield code="o"></subfield>
<subfield code="p"></subfield>
<subfield code="r"></subfield>
<subfield code="s"></subfield>
<subfield code="a">a</subfield>
<subfield code="d">d</subfield>
<subfield code="f">f</subfield>
<subfield code="g">g</subfield>
<subfield code="h">h</subfield>
<subfield code="k">k</subfield>
<subfield code="l">l</subfield>
<subfield code="m">m</subfield>
<subfield code="n">n</subfield>
<subfield code="o">o</subfield>
<subfield code="p">p</subfield>
<subfield code="r">r</subfield>
<subfield code="s">s</subfield>
</datafield>
<datafield tag="245">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="b"></subfield>
<subfield code="f"></subfield>
<subfield code="g"></subfield>
<subfield code="k"></subfield>
<subfield code="n"></subfield>
<subfield code="p"></subfield>
<subfield code="s"></subfield>
<subfield code="a">a</subfield>
<subfield code="b">b</subfield>
<subfield code="f">f</subfield>
<subfield code="g">g</subfield>
<subfield code="k">k</subfield>
<subfield code="n">n</subfield>
<subfield code="p">p</subfield>
<subfield code="s">s</subfield>
</datafield>
<datafield tag="246">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="b"></subfield>
<subfield code="f"></subfield>
<subfield code="g"></subfield>
<subfield code="h"></subfield>
<subfield code="i"></subfield>
<subfield code="n"></subfield>
<subfield code="p"></subfield>
<subfield code="a">a</subfield>
<subfield code="b">b</subfield>
<subfield code="f">f</subfield>
<subfield code="g">g</subfield>
<subfield code="h">h</subfield>
<subfield code="i">i</subfield>
<subfield code="n">n</subfield>
<subfield code="p">p</subfield>
</datafield>
<datafield tag="730">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="d"></subfield>
<subfield code="f"></subfield>
<subfield code="g"></subfield>
<subfield code="h"></subfield>
<subfield code="i"></subfield>
<subfield code="k"></subfield>
<subfield code="l"></subfield>
<subfield code="m"></subfield>
<subfield code="n"></subfield>
<subfield code="o"></subfield>
<subfield code="p"></subfield>
<subfield code="r"></subfield>
<subfield code="s"></subfield>
<subfield code="t"></subfield>
<subfield code="a">a</subfield>
<subfield code="d">d</subfield>
<subfield code="f">f</subfield>
<subfield code="g">g</subfield>
<subfield code="h">h</subfield>
<subfield code="i">i</subfield>
<subfield code="k">k</subfield>
<subfield code="l">l</subfield>
<subfield code="m">m</subfield>
<subfield code="n">n</subfield>
<subfield code="o">o</subfield>
<subfield code="p">p</subfield>
<subfield code="r">r</subfield>
<subfield code="s">s</subfield>
<subfield code="t">t</subfield>
</datafield>
<datafield tag="740">
<subfield></subfield>
<subfield code=""></subfield>
<subfield code="a"></subfield>
<subfield code="n"></subfield>
<subfield code="p"></subfield>
<subfield code="a">a</subfield>
<subfield code="n">n</subfield>
<subfield code="p">p</subfield>
</datafield>
</record>
</collection>
16 changes: 16 additions & 0 deletions tests/fixtures/marc/marc_record_blank_optional_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<collection>
<record>
<leader></leader>
<controlfield tag="008"></controlfield>
<controlfield tag="001">990027185640106761</controlfield>
<datafield tag="050"></datafield>
<datafield tag="082"></datafield>
<datafield tag="130"></datafield>
<datafield tag="240"></datafield>
<datafield tag="245"></datafield>
<datafield tag="246"></datafield>
<datafield tag="730"></datafield>
<datafield tag="740"></datafield>
</record>
</collection>
6 changes: 6 additions & 0 deletions tests/fixtures/marc/marc_record_missing_optional_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<collection>
<record>
<controlfield tag="001">990027185640106761</controlfield>
</record>
</collection>
Loading

0 comments on commit cb8df2f

Please sign in to comment.