def test_get_xref(db, bibs): from dlx.marc import Bib bib = Bib(bibs[0]) assert bib.get_xref('650', 'a') == 1 bib.set('710', 'a', 3, address='+') assert bib.get_xrefs('710') == [2,3]
def test_set(): from dlx.marc import Bib bib = Bib() bib.set('245', 'a', 'Edited') assert bib.get_value('245', 'a') == 'Edited' bib.set('245', 'a', 'Repeated field', address=['+']) assert bib.get_values('245', 'a') == ['Edited', 'Repeated field'] bib.set('245', 'a', 'Repeated field edited', address=[1]) assert bib.get_value('245', 'a', address=[1, 0]) == 'Repeated field edited' bib.set('245', 'a', 'Repeated subfield', address=[1, '+']) assert bib.get_value('245', 'a', address=[1, 1]) == 'Repeated subfield' bib.set('651', 'a', 9) assert bib.get_xref('651', 'a') == 9 bib = Bib().set_values( ('245', 'a', 'yet another'), ('245', 'b', 'title'), ('500', 'a', 'desc'), ('500', 'a', 'desc', {'address': ['+']}), ) assert bib.get_values('245', 'a', 'b') == ['yet another', 'title'] assert bib.get_values('500', 'a') == ['desc', 'desc']
def test_get_field(bibs): from dlx.marc import Bib, Field, Controlfield, Datafield bib = Bib(bibs[0]) assert isinstance(bib.get_field('000'), Controlfield) assert isinstance(bib.get_field('245'), Datafield) assert bib.get_field('245').tag == '245' fields = bib.get_fields('245', '520') for field in fields: assert isinstance(field, Field) bib = Bib() for tag in ('400', '100', '500', '300', '200'): bib.set(tag, 'a', 'test') assert [field.tag for field in bib.get_fields()] == ['100', '200', '300', '400', '500']
def test_set_008(bibs): from dlx.marc import Bib from dlx.config import Config import time bib = Bib(bibs[0]) date_tag, date_code = Config.date_field bib.set(date_tag, date_code, '19991231') with pytest.raises(Exception): bib.set('008', None, 'already set') bib.set_008() bib.set('008', None, '') bib.set_008(); assert bib.get_value('008')[0:6] == time.strftime('%y%m%d') assert bib.get_value('008')[7:11] == '1999'