Tesis 1.0.0
Loading...
Searching...
No Matches
test_cart_models.py
Go to the documentation of this file.
1from django.test import TestCase
2from appCART.models import Pedido, DetallePedido, Carrito
3from appUSERS.models import Usuario
4from appFOOD.models import Producto, CategoriaProducto
5from decimal import Decimal
6from datetime import date
7
8class CartModelTests(TestCase):
9 """
10 Pruebas unitarias para los modelos de carrito y pedidos
11 """
12
13 def setUp(self):
14 # Crear usuario
15 self.usuario = Usuario.objects.create_user(
16 email='cliente@example.com',
17 password='password123',
18 nombre='Cliente',
19 apellido='Test',
20 telefono='1234567890',
21 direccion='Calle Falsa 123'
22 )
23
24 # Crear categoría
25 self.categoria = CategoriaProducto.objects.create(
26 nombre_categoria='Hamburguesas',
27 descripcion='Hamburguesas clásicas'
28 )
29
30 # Crear producto
31 self.producto = Producto.objects.create(
32 nombre_producto='Hamburguesa clásica',
33 descripcion='Hamburguesa con queso, lechuga y tomate',
34 precio=500.0,
35 stock=10,
36 imageURL='hamburguesa.jpg',
37 id_categoria=self.categoria
38 )
39
40 # Crear pedido
41 self.pedido = Pedido.objects.create(
42 id_usuario=self.usuario,
43 fecha_pedido=date.today(),
44 direccion_entrega=self.usuario.direccion,
45 estado='Pendiente'
46 )
47
48 # Crear detalle de pedido
49 self.detalle_pedido = DetallePedido.objects.create(
50 id_pedido=self.pedido,
51 id_producto=self.producto,
52 cantidad_productos=2,
53 precio_producto=self.producto.precio,
54 subtotal=self.producto.precio * 2,
55 direccion_entrega=self.pedido.direccion_entrega
56 )
57
58 # Crear carrito
59 self.carrito = Carrito.objects.create(
60 producto=self.producto,
61 cantidad=2,
62 usuario=self.usuario,
63 comprado=False,
64 id_pedido=self.pedido
65 )
66
68 """Verifica que un pedido se crea correctamente"""
69 self.assertEqual(self.pedido.id_usuario, self.usuario)
70 self.assertEqual(self.pedido.fecha_pedido, date.today())
71 self.assertEqual(self.pedido.direccion_entrega, 'Calle Falsa 123')
72 self.assertEqual(self.pedido.estado, 'Pendiente')
73
75 """Verifica que un detalle de pedido se crea correctamente y calcula el subtotal"""
76 self.assertEqual(self.detalle_pedido.id_pedido, self.pedido)
77 self.assertEqual(self.detalle_pedido.id_producto, self.producto)
78 self.assertEqual(self.detalle_pedido.cantidad_productos, 2)
79 self.assertEqual(self.detalle_pedido.precio_producto, 500.0)
80 self.assertEqual(self.detalle_pedido.subtotal, 1000.0)
81 self.assertEqual(self.detalle_pedido.direccion_entrega, 'Calle Falsa 123')
82
84 """Verifica que se puede modificar el estado de un pedido"""
85 self.pedido.estado = 'Aprobado'
86 self.pedido.save()
87
88 pedido_actualizado = Pedido.objects.get(pk=self.pedido.id_pedidos)
89 self.assertEqual(pedido_actualizado.estado, 'Aprobado')
90
91 # Cambiar a entregado
92 pedido_actualizado.estado = 'Entregado'
93 pedido_actualizado.save()
94
95 pedido_final = Pedido.objects.get(pk=self.pedido.id_pedidos)
96 self.assertEqual(pedido_final.estado, 'Entregado')