diff --git a/test/dataextractors/test_simple.py b/test/dataextractors/test_simple.py index ead0019c29d476cdc54f4d563b968a47e79a69d4..0f7971bd30cf2f1117c5c67bf843b7a6213ccead 100644 --- a/test/dataextractors/test_simple.py +++ b/test/dataextractors/test_simple.py @@ -9,7 +9,7 @@ from travelogues_extraction.getrecords.session import RecordRetriever from travelogues_extraction.getrecords.acnumber_extractor import extract_ac_from_series from travelogues_extraction.dataextractors.dataextractors.simple import VolltextAndBarcode, Ausgabe, Verlagsort, \ VerlegerDrucker, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, \ - Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, ArtDesInhalts, Inhalt + Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, ArtDesInhalts, Inhalt, Marker from travelogues_extraction.dataextractors.dataextractors.index import IndexSetter @@ -44,6 +44,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc bemerkungenZurSprache = BemerkungenZurSprache(target_dataframe) artDesInhalts = ArtDesInhalts(target_dataframe) inhalt = Inhalt(target_dataframe) + marker = Marker(target_dataframe) index = 0 stop = 3 @@ -108,6 +109,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc await bemerkungenZurSprache.write(record) await artDesInhalts.write(record) await inhalt.write(record) + await marker.write(record) assert target_dataframe.shape[0] == index + 1 assert target_dataframe.iat[index, 1].__class__ is str @@ -213,6 +215,10 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc assert inhalt_list[0][0].isalpha() assert inhalt_list[1][0].isalpha() + markers = target_dataframe.at[record.ac_number, marker.column].split(marker.join_string) + assert len(markers) > 0 + assert any([m.startswith('Travel') for m in markers]) + index += 1 if index == stop: break diff --git a/travelogues_extraction/controller/main.py b/travelogues_extraction/controller/main.py index 55ab39259e7f2d769f1f9f7ae702dd95ce6d46de..2c551c1e049097cc5cab1b79e0c94ee76cbd62d8 100644 --- a/travelogues_extraction/controller/main.py +++ b/travelogues_extraction/controller/main.py @@ -37,7 +37,7 @@ class FromAlmaOutputToExcel: VerlegerNormiertGNDID, DruckerGNDID, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, WeitereVerfasserGNDID, HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, - WidmungsempfängerGNDID, ArtDesInhalts, Inhalt, WerkeInRelation, Schlagworte + WidmungsempfängerGNDID, ArtDesInhalts, Inhalt, WerkeInRelation, Schlagworte, Marker ] 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 9b7636a227872a9ed3bf85684893bbcb476f97e1..4406cfa7bb2cd0dc7b5327eeca390b3abada9533 100644 --- a/travelogues_extraction/dataextractors/dataextractors/simple.py +++ b/travelogues_extraction/dataextractors/dataextractors/simple.py @@ -194,6 +194,9 @@ class Inhalt(AbstractXpathJoinDirectlyToColumn): ) +class Marker(AbstractXpathJoinDirectlyToColumn): + column = 'Marker' + xpath = lxmletree.XPath('./marc:datafield[@tag="980" and @ind1="0" and @ind2=" "]/marc:subfield[@code="a"]', namespaces=namespaces)