Files
api-inventario/tests/test_products.py
2026-04-11 03:58:52 +00:00

48 lines
1.3 KiB
Python

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