diff --git a/test/dataextractors/test_simple.py b/test/dataextractors/test_simple.py index 89c8aaa3ea8fbd47bb21d7de7ce6c2c1685de6c6..7e6261867e3579b7635bd61942ab5cca9bf93f2a 100644 --- a/test/dataextractors/test_simple.py +++ b/test/dataextractors/test_simple.py @@ -10,7 +10,7 @@ from travelogues_extraction.getrecords.acnumber_extractor import extract_ac_from from travelogues_extraction.dataextractors.dataextractors.simple import VolltextAndBarcode, Ausgabe, Verlagsort, \ VerlegerDrucker, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, \ Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, ArtDesInhalts, Inhalt, Marker, Zusammenstellung, \ - Standort + Standort, VD17 from travelogues_extraction.dataextractors.dataextractors.index import IndexSetter @@ -27,7 +27,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc [IndexSetter.column, ] + VolltextAndBarcode.get_columns_names_I_work_on() + [Ausgabe.column, Verlagsort.column, VerlegerDrucker.column, Erscheinungsjahr.column, ErscheinungsjahrSortierform.column, ] + Illustrationen.get_columns_names_I_work_on() \ + [Format.column, ] + Anmerkungen.get_columns_names_I_work_on() + [Sprache.column, OriginalSprache.column, - BemerkungenZurSprache.column, ArtDesInhalts.column, Inhalt.column, Zusammenstellung.column, Standort.column] + BemerkungenZurSprache.column, ArtDesInhalts.column, Inhalt.column, Zusammenstellung.column, Standort.column, ] ) index_setter = IndexSetter(target_dataframe) volltext_and_barcode = VolltextAndBarcode(target_dataframe) @@ -253,3 +253,22 @@ async def test_standardnummer(): assert target_dataframe.at['AC10438476', standardnummer.column].__repr__() == 'nan' +@pytest.mark.asyncio +async def test_vd17(): + # AC07705435 whithout + # AC09682453 whith + reduced_series = dummy_data[ + dummy_data['Datensatznummer'].str.contains('AC07705435') | dummy_data['Datensatznummer'].str.contains( + 'AC09682453')]['Datensatznummer'] + session = httpx.AsyncClient() + record_retriever = RecordRetriever(extract_ac_from_series(reduced_series), session=session) + target_dataframe = pd.DataFrame([], columns=[IndexSetter.column, VD17.column]) + indexer = IndexSetter(target_dataframe) + vd17 = VD17(target_dataframe) + async for record in record_retriever.generate_records(): + await indexer.write(record) + await vd17.write(record) + + assert target_dataframe.shape == (2, 2) + assert target_dataframe.at['AC09682453', vd17.column] == 'VD18 14804557' + assert target_dataframe.at['AC07705435', vd17.column].__repr__() == 'nan' diff --git a/travelogues_extraction/controller/main.py b/travelogues_extraction/controller/main.py index 4be759248d0ca5443f6474c0cf0a41bf9e05301c..2293b685eda7740335a0b4ccb9a98fa07d690fbf 100644 --- a/travelogues_extraction/controller/main.py +++ b/travelogues_extraction/controller/main.py @@ -38,7 +38,7 @@ class FromAlmaOutputToExcel: Format, Anmerkungen, Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, WeitereVerfasserGNDID, HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, WidmungsempfängerGNDID, ArtDesInhalts, Inhalt, WerkeInRelation, Schlagworte, Marker, Zusammenstellung, Signatur, - Standort, + Standort, VD17 ] def __init__(self, alma_output: str, target_output: str, slice: slice): diff --git a/travelogues_extraction/dataextractors/dataextractors/simple.py b/travelogues_extraction/dataextractors/dataextractors/simple.py index ddf0a03f535015c76d3d29e6f09822ed4df21193..e1a716a4189659d20b98cf2540ea52a6f5747316 100644 --- a/travelogues_extraction/dataextractors/dataextractors/simple.py +++ b/travelogues_extraction/dataextractors/dataextractors/simple.py @@ -213,4 +213,9 @@ class Standort(AbstractXpathJoinDirectlyToColumn): xpath = lxmletree.XPath('./marc:datafield[@tag="AVA" and @ind1=" " and @ind2=" "]/marc:subfield[@code="b"]', namespaces=namespaces) +class VD17(AbstractXpathJoinDirectlyToColumn): + column = 'VD17' + xpath = lxmletree.XPath('./marc:datafield[@tag="024"]/marc:subfield[@code="a"]', namespaces=namespaces) + +