Tesis 1.0.0
Loading...
Searching...
No Matches
test_food_models.py
Go to the documentation of this file.
1from django.test import TestCase
2from appFOOD.models import Producto, CategoriaProducto
3
4class ProductModelTests(TestCase):
5 """
6 Pruebas unitarias para el modelo de Producto
7 """
8
9 def setUp(self):
10 # Crear categoría
11 self.categoria1 = CategoriaProducto.objects.create(
12 nombre_categoria='Hamburguesas',
13 descripcion='Hamburguesas clásicas'
14 )
15
16 self.categoria2 = CategoriaProducto.objects.create(
17 nombre_categoria='Pizzas',
18 descripcion='Pizzas variadas'
19 )
20
21 # Crear productos
22 self.producto1 = Producto.objects.create(
23 nombre_producto='Hamburguesa clásica',
24 descripcion='Hamburguesa con queso, lechuga y tomate',
25 precio=500.0,
26 stock=10,
27 imageURL='hamburguesa.jpg',
28 id_categoria=self.categoria1
29 )
30
31 self.producto2 = Producto.objects.create(
32 nombre_producto='Pizza Muzarella',
33 descripcion='Pizza con queso muzarella',
34 precio=800.0,
35 stock=5,
36 imageURL='pizza.jpg',
37 id_categoria=self.categoria2
38 )
39
41 """Verifica que un producto se crea correctamente"""
42 self.assertEqual(self.producto1.nombre_producto, 'Hamburguesa clásica')
43 self.assertEqual(self.producto1.precio, 500.0)
44 self.assertEqual(self.producto1.stock, 10)
45 self.assertEqual(self.producto1.id_categoria, self.categoria1)
46
47 self.assertEqual(self.producto2.nombre_producto, 'Pizza Muzarella')
48 self.assertEqual(self.producto2.precio, 800.0)
49 self.assertEqual(self.producto2.stock, 5)
50 self.assertEqual(self.producto2.id_categoria, self.categoria2)
51
53 """Verifica que el método __str__ del modelo devuelve el nombre del producto"""
54 self.assertEqual(str(self.producto1), 'Hamburguesa clásica')
55 self.assertEqual(str(self.producto2), 'Pizza Muzarella')
56
58 """Verifica que el método __str__ del modelo de categoría devuelve el nombre de la categoría"""
59 self.assertEqual(str(self.categoria1), 'Hamburguesas')
60 self.assertEqual(str(self.categoria2), 'Pizzas')
61
63 """Verifica que se puede actualizar el stock de un producto"""
64 # Reducir stock (simular venta)
65 self.producto1.stock -= 2
66 self.producto1.save()
67
68 producto_actualizado = Producto.objects.get(pk=self.producto1.id_producto)
69 self.assertEqual(producto_actualizado.stock, 8)
70
71 # Aumentar stock (simular reposición)
72 producto_actualizado.stock += 5
73 producto_actualizado.save()
74
75 producto_final = Producto.objects.get(pk=self.producto1.id_producto)
76 self.assertEqual(producto_final.stock, 13)