import urllib.request import json import ssl ctx = ssl.create_default_context() def test_live(): # 1. Roll 3 slots url = "https://wtc.dev.waiswuaschd.de/api/roll" payload = { "slots": [ {"slot_number": 1, "category": "Nudeln", "efforts": ["gering", "mittel"]}, {"slot_number": 2, "category": "asiatisch", "efforts": ["mittel"]}, {"slot_number": 3, "category": "Hausmannskost", "efforts": ["hoch"]} ] } req = urllib.request.Request( url, data=json.dumps(payload).encode("utf-8"), headers={"Content-Type": "application/json"} ) with urllib.request.urlopen(req, context=ctx) as resp: data = json.loads(resp.read().decode("utf-8")) print("Initial Roll:") for r in data["results"]: dish = r["dish"] print(f" Slot {r['slot_number']}: ID={dish['id']} - {dish['name']}") slot1_dish = data["results"][0]["dish"] other_ids = [r["dish"]["id"] for r in data["results"][1:]] # 2. Reroll slot 1 reroll_url = "https://wtc.dev.waiswuaschd.de/api/roll-single" reroll_payload = { "slot_number": 1, "category": "Nudeln", "efforts": ["gering", "mittel"], "current_dish_id": slot1_dish["id"], "other_dish_ids": other_ids } req2 = urllib.request.Request( reroll_url, data=json.dumps(reroll_payload).encode("utf-8"), headers={"Content-Type": "application/json"} ) with urllib.request.urlopen(req2, context=ctx) as resp2: reroll_data = json.loads(resp2.read().decode("utf-8")) new_dish = reroll_data["dish"] print("\nReroll Slot 1 Result:") print(f" New Dish: ID={new_dish['id']} - {new_dish['name']}") assert new_dish["id"] != slot1_dish["id"], "Reroll gave same dish!" assert new_dish["id"] not in other_ids, "Reroll duplicated another slot!" print(" SUCCESS: Different dish picked, no duplication with active slots!") if __name__ == "__main__": test_live()