From 524626aea352beeb0cea56386efbaf1e341a2ea9 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 29 Jun 2024 17:20:01 -0500 Subject: [PATCH] fix: actualizando precios al importar productos. --- tienda_ilusion/don_confiao/test_products.py | 32 +++++++++++++++++++-- tienda_ilusion/don_confiao/views.py | 10 +++---- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/tienda_ilusion/don_confiao/test_products.py b/tienda_ilusion/don_confiao/test_products.py index a522b28..6f2ea86 100644 --- a/tienda_ilusion/don_confiao/test_products.py +++ b/tienda_ilusion/don_confiao/test_products.py @@ -39,7 +39,35 @@ class TestProducts(TestCase): first_products = self._get_products() self._import_csv('example_products2.csv') seconds_products = self._get_products() - self.assertCountEqual(first_products, seconds_products) + self.assertEqual(len(first_products), len(seconds_products)) + + def test_update_price(self): + self._import_csv() + first_products = self._get_products() + first_prices = {p["name"]: p["price_list"] for p in first_products} + expected_first_prices = { + "Aceite": '50000.00', + "Café": '14000.00', + "Arroz": '7000.00' + } + self.assertDictEqual( + expected_first_prices, + first_prices + ) + + self._import_csv('example_products2.csv') + updated_products = self._get_products() + updated_prices = {p["name"]: p["price_list"] for p in updated_products} + expected_updated_prices = { + "Aceite": '50000.00', + "Café": '15000.00', + "Arroz": '6000.00' + } + + self.assertDictEqual( + expected_updated_prices, + updated_prices + ) def _get_products(self): products_response = self.client.get("/don_confiao/productos") @@ -48,7 +76,7 @@ class TestProducts(TestCase): def _import_csv(self, csv_file='example_products.csv'): app_name = "don_confiao" app_dir = os.path.join(settings.BASE_DIR, app_name) - example_csv = os.path.join(app_dir, 'example_products.csv') + example_csv = os.path.join(app_dir, csv_file) with open(example_csv, 'rb') as csv: self.client.post( "/don_confiao/importar_productos", diff --git a/tienda_ilusion/don_confiao/views.py b/tienda_ilusion/don_confiao/views.py index 9daaf49..8f04092 100644 --- a/tienda_ilusion/don_confiao/views.py +++ b/tienda_ilusion/don_confiao/views.py @@ -59,13 +59,13 @@ def handle_import_products_file(csv_file): data = io.StringIO(csv_file.read().decode('utf-8')) reader = csv.DictReader(data, quotechar='"') for row in reader: - product, _ = Product.objects.get_or_create( + product, created = Product.objects.update_or_create( name=row['producto'], - defaults={'price': row['precio']} + defaults={ + 'price': row['precio'], + 'measuring_unit': row['unidad'], + } ) - product.price = row['precio'] - product.measuring_unit = row['unidad'] - product.save() categories = [n.strip() for n in row["categorias"].split("&")] for category in categories: