45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import pytest
|
|
import datetime
|
|
|
|
|
|
@pytest.mark.dependency()
|
|
def test_create_product(client, product_payload):
|
|
response = client.post("product", json=product_payload)
|
|
assert response.status_code == 200, response.json()
|
|
|
|
|
|
@pytest.mark.dependency(depends=["test_create_product"])
|
|
def test_list_product(client):
|
|
response = client.get("product")
|
|
assert response.status_code == 200, response.json()
|
|
|
|
data = response.json()["products"]
|
|
assert len(data) != 0
|
|
|
|
product_ids = set()
|
|
for product in data:
|
|
assert product["id"] not in product_ids
|
|
product_ids.add(product["id"])
|
|
|
|
|
|
@pytest.mark.dependency(depends=["test_list_product"])
|
|
def test_products_list_by_latest_usage(
|
|
client, product_payload_factory, entry_payload_factory
|
|
):
|
|
today = datetime.date.today().isoformat()
|
|
response = client.get("diary", params={"date": today})
|
|
assert response.status_code == 200, response.json()
|
|
|
|
meal_id = response.json()["meals"][0]["id"]
|
|
|
|
response = client.get("product")
|
|
product_id = response.json()["products"][0]["id"]
|
|
|
|
entry_payload = entry_payload_factory(meal_id, product_id, 100.0)
|
|
response = client.post("entry", json=entry_payload)
|
|
|
|
for _ in range(5):
|
|
client.post("product", json=product_payload_factory()).json()["id"]
|
|
|
|
response = client.get("product")
|
|
assert response.json()["products"][0]["id"] == product_id
|