61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
# -*- 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,
|
|
}
|