48 lines
1.3 KiB
Python
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
|