fooder-api/fooder/test/test_preset.py
2023-10-27 15:12:48 +02:00

69 lines
2.2 KiB
Python

import datetime
import pytest
@pytest.mark.dependency()
def test_create_meal(client, meal_payload_factory):
today = datetime.date.today().isoformat()
response = client.get("diary", params={"date": today})
diary_id = response.json()["id"]
meal_order = len(response.json()["meals"]) + 1
response = client.post("meal", json=meal_payload_factory(diary_id, meal_order))
assert response.status_code == 200, response.json()
@pytest.mark.dependency(depends=["test_create_meal"])
def test_save_meal(client, meal_save_payload):
today = datetime.date.today().isoformat()
response = client.get("diary", params={"date": today})
meal_id = response.json()["meals"][0]["id"]
save_payload = meal_save_payload(meal_id)
response = client.post(f"meal/{meal_id}/save", json=save_payload)
assert response.status_code == 200, response.json()
@pytest.mark.dependency(depends=["test_create_meal"])
def test_list_presets(client, meal_save_payload):
response = client.get("preset")
assert response.status_code == 200, response.json()
assert len(response.json()["presets"]) > 0, response.json()
name = meal_save_payload(0)["name"]
response = client.get(f"preset?q={name}")
assert response.status_code == 200, response.json()
assert len(response.json()["presets"]) > 0, response.json()
@pytest.mark.dependency(depends=["test_list_presets"])
def test_create_meal_from_preset(client, meal_from_preset):
today = datetime.date.today().isoformat()
response = client.get("diary", params={"date": today})
diary_id = response.json()["id"]
meal_order = len(response.json()["meals"]) + 1
response = client.get("preset")
assert response.status_code == 200, response.json()
assert len(response.json()["presets"]) > 0, response.json()
preset = response.json()["presets"][0]
payload = meal_from_preset(
meal_order,
diary_id,
preset["id"],
)
response = client.post("meal/from_preset", json=payload)
assert response.status_code == 200, response.json()
meal = response.json()
for k, v in preset.items():
if k in ("id", "name", "entries"):
continue
assert meal[k] == v, f"{k} != {v}"