This repository has been archived on 2025-08-29. You can view files and clone it, but cannot push or open issues or pull requests.
Files
don_confiao/tienda_ilusion/don_confiao/tests/tests.py
2024-11-16 15:59:56 -05:00

97 lines
2.6 KiB
Python

from django.test import TestCase
from django.core.exceptions import ValidationError
from ..models import Customer, Product, Sale, SaleLine
class ConfiaoTest(TestCase):
def setUp(self):
self.product = Product()
self.product.name = "Pepino"
self.product.price = 5000
self.product.save()
self.customer = Customer()
self.customer.name = "Don Confiao Gonzalez"
self.customer.address = "Patio Bonito"
self.customer.save()
def test_create_sale(self):
sale = Sale()
sale.customer = self.customer
sale.date = "2024-06-22 12:05:00"
sale.phone = '666666666'
sale.description = "Description"
sale.save()
self.assertIsInstance(sale, Sale)
def test_can_create_sale_without_payment_method(self):
sale = Sale()
sale.customer = self.customer
sale.date = "2024-06-22 12:05:00"
sale.phone = '666666666'
sale.description = "Description"
sale.payment_method = ''
with self.assertRaises(ValidationError):
sale.full_clean()
def test_create_sale_line(self):
sale = Sale()
sale.customer = self.customer
sale.date = "2024-06-22"
sale.phone = '666666666'
sale.description = "Description"
line = SaleLine()
line.sale = sale
line.product = self.product
line.quantity = 2
line.unit_price = 2500
line.amount = 5000
sale.save()
line.save()
self.assertEqual(SaleLine.objects.all()[0].quantity, 2)
def test_create_sale_with_lines(self):
sale = Sale()
sale.customer = self.customer
sale.date = "2024-06-22"
sale.phone = '666666666'
sale.description = "Description"
line1 = SaleLine()
line1.sale = sale
line1.product = self.product
line1.quantity = 2
line1.unit_price = 2500
line1.amount = 5000
line2 = SaleLine()
line2.sale = sale
line2.product = self.product
line2.quantity = 2
line2.unit_price = 2500
line2.amount = 5000
sale.save()
line1.save()
line2.save()
self.assertEqual(len(SaleLine.objects.all()), 2)
self.assertEqual(
Sale.objects.all()[0].saleline_set.all()[0].quantity,
2
)
def test_allow_sale_without_description(self):
sale = Sale()
sale.customer = self.customer
sale.date = "2024-06-22"
sale.phone = '666666666'
sale.description = None
sale.save()
self.assertEqual(len(Sale.objects.all()), 1)