Compare commits
2 Commits
bdf7f6f7cb
...
ecef46b4bb
| Author | SHA1 | Date | |
|---|---|---|---|
| ecef46b4bb | |||
| 75c030b554 |
@@ -28,10 +28,16 @@ dev = [
|
|||||||
[tool.taskipy.tasks]
|
[tool.taskipy.tasks]
|
||||||
dev-up = "docker compose -f docker-compose.dev.yml up -d"
|
dev-up = "docker compose -f docker-compose.dev.yml up -d"
|
||||||
dev-logs = "docker compose -f docker-compose.dev.yml logs -f -n 50"
|
dev-logs = "docker compose -f docker-compose.dev.yml logs -f -n 50"
|
||||||
|
dev-stop = "docker compose -f docker-compose.dev.yml stop"
|
||||||
|
dev-restart = "docker compose -f docker-compose.dev.yml restart"
|
||||||
dev-down = "docker compose -f docker-compose.dev.yml down -vv --rmi all"
|
dev-down = "docker compose -f docker-compose.dev.yml down -vv --rmi all"
|
||||||
|
dev-tail = "docker compose -f docker-compose.dev.yml logs -f"
|
||||||
|
|
||||||
dev-sh = "docker compose -f docker-compose.dev.yml exec -it --user root django bash"
|
dev-sh = "docker compose -f docker-compose.dev.yml exec -it --user root django bash"
|
||||||
dev-migrate = "docker compose -f docker-compose.dev.yml exec -it --user root django python3 manage.py migrate"
|
dev-migrate = "docker compose -f docker-compose.dev.yml exec -it --user root django python3 manage.py migrate"
|
||||||
dev-createsuperuser = "docker compose -f docker-compose.dev.yml exec -it --user root django python3 manage.py createsuperuser"
|
dev-createsuperuser = "docker compose -f docker-compose.dev.yml exec -it --user root django python3 manage.py createsuperuser"
|
||||||
|
dev-test = "docker compose -f docker-compose.dev.yml exec -it --user root django python3 manage.py test"
|
||||||
|
|
||||||
|
|
||||||
live-up = "docker compose -f docker-compose.staging.yml up -d"
|
live-up = "docker compose -f docker-compose.staging.yml up -d"
|
||||||
live-logs = "docker compose -f docker-compose.staging.yml logs -f -n 50"
|
live-logs = "docker compose -f docker-compose.staging.yml logs -f -n 50"
|
||||||
|
|||||||
@@ -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}
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user