From 18af11a63ad401b3371fd7022e3680c5eac38c15 Mon Sep 17 00:00:00 2001 From: openclaw Date: Sat, 11 Apr 2026 03:58:52 +0000 Subject: [PATCH] Add tests/test_products.py --- tests/test_products.py | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/test_products.py diff --git a/tests/test_products.py b/tests/test_products.py new file mode 100644 index 0000000..52e9cb4 --- /dev/null +++ b/tests/test_products.py @@ -0,0 +1,47 @@ +from decimal import Decimal +from app.services import product_service +from app.services import category_service +from app.schemas.product import ProductCreate +from app.schemas.category import CategoryCreate + + +def test_create_and_get_product(db): + cat = category_service.create_category(db, CategoryCreate(name="Cat Test")) + prod = product_service.create_product( + db, + ProductCreate( + sku="SKU-001", + name="Producto Test", + price=Decimal("19.99"), + category_id=cat.id, + ), + ) + assert prod.id is not None + assert prod.sku == "SKU-001" + + +def test_low_stock_alert(db): + prod = product_service.create_product( + db, + ProductCreate( + sku="LOW-001", + name="Stock Bajo", + price=Decimal("5.00"), + min_stock=10, + current_stock=3, + ), + ) + low = product_service.get_low_stock_products(db) + assert any(p.id == prod.id for p in low) + + +def test_product_pagination(db): + for i in range(25): + product_service.create_product( + db, + ProductCreate(sku=f"SKU-{i}", name=f"Prod {i}", price=Decimal("1.00")), + ) + page1 = product_service.get_products(db, skip=0, limit=10) + page2 = product_service.get_products(db, skip=10, limit=10) + assert len(page1) == 10 + assert len(page2) == 10