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