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}"