def metadata2():
    """Input data (as coming from the view layer)."""
    metadata = Marc21Metadata()
    metadata.emplace_field(tag="245",
                           ind1="1",
                           ind2="0",
                           value="nulla sunt laborum")
    return metadata
Пример #2
0
def test_json_type():
    metadata = Marc21Metadata()

    test = dict()
    metadata.json = test
    assert metadata.json == {}

    test = ""
    with pytest.raises(TypeError):
        metadata.json = test
Пример #3
0
def test_xml_type():
    metadata = Marc21Metadata()

    test = '<datafield tag="245" ind1="0" ind2="0"></datafield>'
    metadata.xml = test
    assert metadata.xml

    test = {}
    with pytest.raises(TypeError):
        metadata.xml = test
Пример #4
0
def test_controlfields_metadata():
    metadata = Marc21Metadata()
    controlfield = ControlField(tag="123", value="laborum sunt ut nulla")

    assert len(metadata.datafields) == 0
    assert len(metadata.controlfields) == 0

    metadata.controlfields.append(controlfield)
    assert len(metadata.datafields) == 0
    assert len(metadata.controlfields) == 1
    assert '<controlfield tag="123">laborum sunt ut nulla' in metadata.xml
Пример #5
0
def test_subfield_metadata():
    metadata = Marc21Metadata()
    metadata.emplace_field(
        tag="245", ind1="1", ind2="0", code="a", value="laborum sunt ut nulla"
    )

    metadata.emplace_field(
        tag="245", ind1="1", ind2="0", code="b", value="laborum sunt ut nulla"
    )

    assert metadata.is_valid_marc21_xml_string()
Пример #6
0
def test_xml_metadata():
    metadata = Marc21Metadata()
    test = DataField(tag="245", ind1="0", ind2="0")

    metadata.xml = test.to_xml_tag()

    assert metadata.leader.to_xml_tag() == LeaderField().to_xml_tag()
    assert len(metadata.datafields) == 1
    assert len(metadata.controlfields) == 0
    assert len(metadata.datafields[0].subfields) == 0
    assert test.to_xml_tag() in metadata.xml

    test.subfields.append(SubField(code="a", value="Brain-Computer Interface"))
    metadata = Marc21Metadata()
    metadata.xml = test.to_xml_tag()

    assert len(metadata.datafields) == 1
    assert len(metadata.controlfields) == 0
    assert len(metadata.datafields[0].subfields) == 1
    assert test.to_xml_tag() in metadata.xml

    test.subfields.append(SubField(code="b", value="Subtitle field."))
    metadata = Marc21Metadata()
    metadata.xml = test.to_xml_tag()

    assert len(metadata.datafields) == 1
    assert len(metadata.controlfields) == 0
    assert len(metadata.datafields[0].subfields) == 2
    assert test.to_xml_tag() in metadata.xml

    test.subfields.append(SubField(code="c", value="hrsg. von Josef Frank"))
    metadata = Marc21Metadata()
    metadata.xml = test.to_xml_tag()

    assert len(metadata.datafields) == 1
    assert len(metadata.controlfields) == 0
    assert len(metadata.datafields[0].subfields) == 3
    assert test.to_xml_tag() in metadata.xml
Пример #7
0
def test_uniqueness_metadata():
    metadata = Marc21Metadata()
    metadata.emplace_unique_field(
        tag="245", ind1="1", ind2="0", code="a", value="laborum sunt ut nulla"
    )

    metadata.emplace_unique_field(
        tag="245", ind1="1", ind2="0", code="a", value="laborum sunt ut nulla"
    )

    assert len(metadata.datafields) == 1
    assert len(metadata.controlfields) == 0
    assert len(metadata.datafields[0].subfields) == 1
    assert metadata.is_valid_marc21_xml_string()
Пример #8
0
def test_create_metadata():

    metadata = Marc21Metadata()
    assert metadata.leader.to_xml_tag() == LeaderField().to_xml_tag()
    assert metadata.controlfields == list()
    assert metadata.datafields == list()

    assert "<?xml version='1.0' ?>" in metadata.xml
    assert '<record xmlns="http://www.loc.gov/MARC21/slim"' in metadata.xml
    assert (
        'xsi:schemaLocation="http://www.loc.gov/MARC21/slim schema.xsd" type="Bibliographic"'
        in metadata.xml
    )
    assert 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' in metadata.xml

    metadata.emplace_field(
        tag="245", ind1="1", ind2="0", code="a", value="laborum sunt ut nulla"
    )

    assert '<datafield tag="245" ind1="1" ind2="0">' in metadata.xml
    assert '<subfield code="a">laborum sunt ut nulla</subfield>' in metadata.xml