Skip to content

Commit

Permalink
Merge pull request #82 from tulibraries/qa
Browse files Browse the repository at this point in the history
Merge QA and master
  • Loading branch information
dkinzer committed May 11, 2020
2 parents afb710f + e077d3d commit da599dd
Show file tree
Hide file tree
Showing 3 changed files with 179 additions and 144 deletions.
5 changes: 2 additions & 3 deletions lib/cob_index/macros/custom.rb
Original file line number Diff line number Diff line change
Expand Up @@ -535,20 +535,19 @@ def flank(string = "", starts = nil, ends = nil)
def suppress_items
lambda do |rec, acc, context|
full_text_link = rec.fields("856").select { |field| field["u"] }
purchase_order_item = rec.fields("902").select { |field| field["a"].match?(/EBC-POD/) }
unwanted_library = rec.fields("HLD").select { |field| field["b"] == "EMPTY" || field["c"] == "UNASSIGNED" }
u_subfields = []
rec.fields("ITM").select { |field|
u_subfields << field["u"]
}

acc.replace([true]) if rec.fields("HLD").length == 0 && (rec.fields("PRT").length == 0 && full_text_link.empty?)
acc.replace([true]) if rec.fields("HLD").length == 0 && (rec.fields("PRT").length == 0 && full_text_link.empty?) && purchase_order_item.empty?
acc.replace([true]) if rec.fields("ITM").length >= 1 && u_subfields.all? { |f| f == "LOST_LOAN" || f == "MISSING" || f == "TECHNICAL" || f == "UNASSIGNED" }
acc.replace([true]) if rec.fields("HLD").length == 1 && !unwanted_library.empty?

if acc == [true] && ENV["TRAJECT_FULL_REINDEX"] == "yes"
context.skip!
end

end
end

Expand Down
18 changes: 18 additions & 0 deletions spec/cob_index/macros/custom_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1370,6 +1370,24 @@
end
end

context "when purchase order fields are present with EBC-POD" do
it "doesn't suppress this file" do
expect(subject.map_record(records[11])).to eq({})
end
end

context "when purchase order fields are not present" do
it "does suppress the file" do
expect(subject.map_record(records[12])).to eq("suppress_items_b" => [true])
end
end

context "when purchase order fields are present without EBC-POD" do
it "does suppress the file" do
expect(subject.map_record(records[13])).to eq("suppress_items_b" => [true])
end
end

context "when all fields are lost or missing" do
it "does suppress the file" do
expect(subject.map_record(records[9])).to eq("suppress_items_b" => [true])
Expand Down
300 changes: 159 additions & 141 deletions spec/fixtures/marc_files/lost_missing_technical.xml
Original file line number Diff line number Diff line change
Expand Up @@ -333,145 +333,163 @@
<subfield code="f">MAIN</subfield>
</datafield>
</record>

<!-- 5. Single holding in EMPTY library -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
<subfield code="b">EMPTY</subfield>
<subfield code="c">UNASSIGNED</subfield>
<subfield code="x">RETENTION: -</subfield>
<subfield code="8">22289831490003811</subfield>
</datafield>
</record>

<!-- 6. PR #1108 One unassigned -->
<record xmlns="http://www.loc.gov/MARC21/slim">
<controlfield tag="001">991026206569703811</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22311821240003811</subfield>
<subfield code="b">1</subfield>
<subfield code="g">serials</subfield>
<subfield code="9">39074501003446</subfield>
<subfield code="e">serials</subfield>
<subfield code="8">23311820530003811</subfield>
<subfield code="c">315 JL-SE 1986</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2017-06-20 11:30:46</subfield>
<subfield code="i">WB 100 .N34</subfield>
<subfield code="d">GINSBURG</subfield>
<subfield code="f">GINSBURG</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22311838780003811</subfield>
<subfield code="b">0</subfield>
<subfield code="g">UNASSIGNED</subfield>
<subfield code="e">UNASSIGNED</subfield>
<subfield code="8">23311838770003811</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2017-06-20 11:30:46</subfield>
<subfield code="i">Shelved by title</subfield>
<subfield code="d">EMPTY</subfield>
<subfield code="f">EMPTY</subfield>
</datafield>
</record>

<!-- 7. Empty HLD and PRT with no 856["u"] present -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
</record>

<!-- 8. Empty HLD and PRT with 856["u"] present -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
<datafield ind1="4" ind2="0" tag="856">
<subfield code="u">http://libproxy.temple.edu/login?url=http://lib.myilibrary.com/detail.asp?id=359867</subfield>
<subfield code="z">Connect to MyiLibrary resource.</subfield>
</datafield>
</record>
<record>
<!-- 9. All items lost or missing -->
<controlfield tag="001">4</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">LOST_LOAN</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">MISSING</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
</record>
<record>
<!-- 10. Some items lost or missing -->
<controlfield tag="001">4</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">LOST_LOAN</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
</record>

<!-- 5. Single holding in EMPTY library -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
<subfield code="b">EMPTY</subfield>
<subfield code="c">UNASSIGNED</subfield>
<subfield code="x">RETENTION: -</subfield>
<subfield code="8">22289831490003811</subfield>
</datafield>
</record>

<!-- 6. PR #1108 One unassigned -->
<record xmlns="http://www.loc.gov/MARC21/slim">
<controlfield tag="001">991026206569703811</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22311821240003811</subfield>
<subfield code="b">1</subfield>
<subfield code="g">serials</subfield>
<subfield code="9">39074501003446</subfield>
<subfield code="e">serials</subfield>
<subfield code="8">23311820530003811</subfield>
<subfield code="c">315 JL-SE 1986</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2017-06-20 11:30:46</subfield>
<subfield code="i">WB 100 .N34</subfield>
<subfield code="d">GINSBURG</subfield>
<subfield code="f">GINSBURG</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22311838780003811</subfield>
<subfield code="b">0</subfield>
<subfield code="g">UNASSIGNED</subfield>
<subfield code="e">UNASSIGNED</subfield>
<subfield code="8">23311838770003811</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2017-06-20 11:30:46</subfield>
<subfield code="i">Shelved by title</subfield>
<subfield code="d">EMPTY</subfield>
<subfield code="f">EMPTY</subfield>
</datafield>
</record>

<!-- 7. Empty HLD and PRT with no 856["u"] present -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
</record>

<!-- 8. Empty HLD and PRT with 856["u"] present -->
<record>
<controlfield tag="001">991014245629703811</controlfield>
<datafield ind1="4" ind2="0" tag="856">
<subfield code="u">http://libproxy.temple.edu/login?url=http://lib.myilibrary.com/detail.asp?id=359867</subfield>
<subfield code="z">Connect to MyiLibrary resource.</subfield>
</datafield>
</record>
<record>
<!-- 9. All items lost or missing -->
<controlfield tag="001">4</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">LOST_LOAN</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">MISSING</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
</record>
<record>
<!-- 10. Some items lost or missing -->
<controlfield tag="001">10</controlfield>
<datafield ind1=" " ind2=" " tag="HLD">
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="u">LOST_LOAN</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="ITM">
<subfield code="r">22423620830003811</subfield>
<subfield code="b">0</subfield>
<subfield code="h">0</subfield>
<subfield code="g">stacks</subfield>
<subfield code="t">BOOK</subfield>
<subfield code="9">39074026623983</subfield>
<subfield code="e">stacks</subfield>
<subfield code="l">0</subfield>
<subfield code="8">23423620820003811</subfield>
<subfield code="j">0</subfield>
<subfield code="a">0</subfield>
<subfield code="q">2018-04-26 14:44:39</subfield>
<subfield code="i">LB1033 .Y95 2018</subfield>
<subfield code="d">MAIN</subfield>
<subfield code="f">MAIN</subfield>
</datafield>
</record>
<record>
<!-- 11. Purchase order fields with EBC-POD are present -->
<controlfield tag="001">11</controlfield>
<datafield ind1=" " ind2=" " tag="902">
<subfield code="a">EBC-POD</subfield>
</datafield>
</record>
<record>
<!-- 12. Purchase order fields are not present -->
<controlfield tag="001">12</controlfield>
</record>
<record>
<!-- 13. Purchase order fields without EBC-POD are present -->
<controlfield tag="001">13</controlfield>
<datafield ind1=" " ind2=" " tag="902">
<subfield code="a">test</subfield>
</datafield>
</record>
</collection>

0 comments on commit da599dd

Please sign in to comment.