# -*- encoding: utf-8 -*- from stw_potsdam.swp_webspeiseplan_parser import SWPWebspeiseplanParser def _menu_item(name): return [ { "speiseplanGerichtData": [ { "speiseplanAdvancedGericht": { "datum": "2026-05-01T00:00:00", "gerichtkategorieID": 1, "gerichtname": name, }, "zusatzinformationen": { "mitarbeiterpreisDecimal2": 0, "price3Decimal2": 0, "gaestepreisDecimal2": 0, }, } ] } ] def _parse_meal(name): parser = SWPWebspeiseplanParser() meals = parser.parse_meals(_menu_item(name), {1: {"name": "Salattheke"}}) return meals[0]["meal"] def test_parse_salad_bar_three_embedded_prices(): meal = _parse_meal( "große Schale kleine Schale Relevo Schale 100g " "1,10 €/ 1,70 €/ 1,90€" ) assert meal.name == "große Schale kleine Schale Relevo Schale 100g" assert meal.price == { "student": 1.10, "employee": 1.70, "other": 1.90, } def test_parse_salad_bar_student_guest_embedded_prices(): meal = _parse_meal( "große Schale\nkleine Schale\nRelevo Schale\n" "100g Stud. 1,00€/ Gäste 1,45€" ) assert meal.name == ( "große Schale kleine Schale Relevo Schale 100g Stud. Gäste" ) assert meal.price == { "student": 1.00, "employee": 0.0, "other": 1.45, }