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):
self._import_csv()
all_products = self._get_products()
self.assertEqual(
len(all_products),
3
)
self.assertEqual(len(all_products), 3)
def test_import_products_with_categories(self):
self._import_csv()
@@ -38,77 +35,74 @@ class TestProducts(TestCase):
categories_on_csv = ["Cafes", "Alimentos", "Aceites"]
categories = ProductCategory.objects.all()
self.assertCountEqual(
[c.name for c in categories],
categories_on_csv
[c.name for c in categories], categories_on_csv
)
def test_update_products(self):
self._import_csv()
first_products = self._get_products()
self._import_csv('example_products2.csv')
self._import_csv("example_products2.csv")
seconds_products = self._get_products()
self.assertEqual(len(first_products), len(seconds_products))
def test_preserve_id_on_import(self):
self._import_csv()
id_aceite = Product.objects.get(name='Aceite').id
self._import_csv('example_products2.csv')
id_post_updated = Product.objects.get(name='Aceite').id
id_aceite = Product.objects.get(name="Aceite").id
self._import_csv("example_products2.csv")
id_post_updated = Product.objects.get(name="Aceite").id
self.assertEqual(id_aceite, id_post_updated)
def test_update_categories_on_import(self):
self._import_csv()
first_products = self._get_products()
first_categories = {p["name"]: p["categories"] for p in first_products}
self._import_csv('example_products2.csv')
first_categories = {
p["name"]: p["categories"] for p in first_products
}
self._import_csv("example_products2.csv")
updated_products = self._get_products()
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.assertNotIn('Granos', first_categories['Arroz'])
self.assertIn("Cafes", first_categories["Arroz"])
self.assertNotIn("Granos", first_categories["Arroz"])
self.assertIn('Granos', updated_categories['Arroz'])
self.assertNotIn('Cafes', updated_categories['Arroz'])
self.assertIn("Granos", updated_categories["Arroz"])
self.assertNotIn("Cafes", updated_categories["Arroz"])
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'
"Aceite": "50000.00",
"Café": "14000.00",
"Arroz": "7000.00",
}
self.assertDictEqual(
expected_first_prices,
first_prices
)
self.assertDictEqual(expected_first_prices, first_prices)
self._import_csv('example_products2.csv')
self._import_csv("example_products2.csv")
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 = {
"Aceite": '50000.00',
"Café": '15000.00',
"Arroz": '6000.00'
"Aceite": "50000.00",
"Café": "15000.00",
"Arroz": "6000.00",
}
self.assertDictEqual(
expected_updated_prices,
updated_prices
)
self.assertDictEqual(expected_updated_prices, updated_prices)
def _get_products(self):
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'):
app_name = "don_confiao"
def _import_csv(self, csv_file="example_products.csv"):
app_name = "don_confiao/tests/data_example"
app_dir = os.path.join(settings.BASE_DIR, app_name)
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(
"/don_confiao/importar_productos",
{"csv_file": csv}
"/don_confiao/importar_productos", {"csv_file": csv}
)