fix: execution tests

This commit is contained in:
2026-05-28 13:38:37 -05:00
parent bdf7f6f7cb
commit 75c030b554
4 changed files with 33 additions and 39 deletions

View File

@@ -23,10 +23,7 @@ class TestProducts(TestCase):
def test_import_products(self): def test_import_products(self):
self._import_csv() self._import_csv()
all_products = self._get_products() all_products = self._get_products()
self.assertEqual( self.assertEqual(len(all_products), 3)
len(all_products),
3
)
def test_import_products_with_categories(self): def test_import_products_with_categories(self):
self._import_csv() self._import_csv()
@@ -38,77 +35,74 @@ class TestProducts(TestCase):
categories_on_csv = ["Cafes", "Alimentos", "Aceites"] categories_on_csv = ["Cafes", "Alimentos", "Aceites"]
categories = ProductCategory.objects.all() categories = ProductCategory.objects.all()
self.assertCountEqual( self.assertCountEqual(
[c.name for c in categories], [c.name for c in categories], categories_on_csv
categories_on_csv
) )
def test_update_products(self): def test_update_products(self):
self._import_csv() self._import_csv()
first_products = self._get_products() first_products = self._get_products()
self._import_csv('example_products2.csv') self._import_csv("example_products2.csv")
seconds_products = self._get_products() seconds_products = self._get_products()
self.assertEqual(len(first_products), len(seconds_products)) self.assertEqual(len(first_products), len(seconds_products))
def test_preserve_id_on_import(self): def test_preserve_id_on_import(self):
self._import_csv() self._import_csv()
id_aceite = Product.objects.get(name='Aceite').id id_aceite = Product.objects.get(name="Aceite").id
self._import_csv('example_products2.csv') self._import_csv("example_products2.csv")
id_post_updated = Product.objects.get(name='Aceite').id id_post_updated = Product.objects.get(name="Aceite").id
self.assertEqual(id_aceite, id_post_updated) self.assertEqual(id_aceite, id_post_updated)
def test_update_categories_on_import(self): def test_update_categories_on_import(self):
self._import_csv() self._import_csv()
first_products = self._get_products() first_products = self._get_products()
first_categories = {p["name"]: p["categories"] for p in first_products} first_categories = {
self._import_csv('example_products2.csv') p["name"]: p["categories"] for p in first_products
}
self._import_csv("example_products2.csv")
updated_products = self._get_products() updated_products = self._get_products()
updated_categories = { updated_categories = {
p["name"]: p["categories"] for p in updated_products} p["name"]: p["categories"] for p in updated_products
}
self.assertIn('Cafes', first_categories['Arroz']) self.assertIn("Cafes", first_categories["Arroz"])
self.assertNotIn('Granos', first_categories['Arroz']) self.assertNotIn("Granos", first_categories["Arroz"])
self.assertIn('Granos', updated_categories['Arroz']) self.assertIn("Granos", updated_categories["Arroz"])
self.assertNotIn('Cafes', updated_categories['Arroz']) self.assertNotIn("Cafes", updated_categories["Arroz"])
def test_update_price(self): def test_update_price(self):
self._import_csv() self._import_csv()
first_products = self._get_products() first_products = self._get_products()
first_prices = {p["name"]: p["price_list"] for p in first_products} first_prices = {p["name"]: p["price_list"] for p in first_products}
expected_first_prices = { expected_first_prices = {
"Aceite": '50000.00', "Aceite": "50000.00",
"Café": '14000.00', "Café": "14000.00",
"Arroz": '7000.00' "Arroz": "7000.00",
} }
self.assertDictEqual( self.assertDictEqual(expected_first_prices, first_prices)
expected_first_prices,
first_prices
)
self._import_csv('example_products2.csv') self._import_csv("example_products2.csv")
updated_products = self._get_products() updated_products = self._get_products()
updated_prices = {p["name"]: p["price_list"] for p in updated_products} updated_prices = {
p["name"]: p["price_list"] for p in updated_products
}
expected_updated_prices = { expected_updated_prices = {
"Aceite": '50000.00', "Aceite": "50000.00",
"Café": '15000.00', "Café": "15000.00",
"Arroz": '6000.00' "Arroz": "6000.00",
} }
self.assertDictEqual( self.assertDictEqual(expected_updated_prices, updated_prices)
expected_updated_prices,
updated_prices
)
def _get_products(self): def _get_products(self):
products_response = self.client.get("/don_confiao/productos") products_response = self.client.get("/don_confiao/productos")
return json.loads(products_response.content.decode('utf-8')) return json.loads(products_response.content.decode("utf-8"))
def _import_csv(self, csv_file='example_products.csv'): def _import_csv(self, csv_file="example_products.csv"):
app_name = "don_confiao" app_name = "don_confiao/tests/data_example"
app_dir = os.path.join(settings.BASE_DIR, app_name) app_dir = os.path.join(settings.BASE_DIR, app_name)
example_csv = os.path.join(app_dir, csv_file) example_csv = os.path.join(app_dir, csv_file)
with open(example_csv, 'rb') as csv: with open(example_csv, "rb") as csv:
self.client.post( self.client.post(
"/don_confiao/importar_productos", "/don_confiao/importar_productos", {"csv_file": csv}
{"csv_file": csv}
) )