feat(Api): export sales for tryton from api.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import json
|
||||
import csv
|
||||
import io
|
||||
|
||||
from django.urls import reverse
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
@@ -45,6 +48,58 @@ class TestAPI(APITestCase):
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(self.customer.name, json_response[0]['name'])
|
||||
|
||||
def test_get_sales_for_tryton(self):
|
||||
url = '/don_confiao/api/sales/for_tryton'
|
||||
self._create_sale()
|
||||
response = self.client.get(url)
|
||||
json_response = json.loads(response.content.decode('utf-8'))
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertIn('csv', json_response)
|
||||
self.assertGreater(len(json_response['csv']), 0)
|
||||
|
||||
def test_csv_structure_in_sales_for_tryton(self):
|
||||
url = '/don_confiao/api/sales/for_tryton'
|
||||
self._create_sale()
|
||||
response = self.client.get(url)
|
||||
json_response = json.loads(response.content.decode('utf-8'))
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
|
||||
csv_reader = csv.reader(io.StringIO(json_response['csv']))
|
||||
expected_header = [
|
||||
"Tercero",
|
||||
"Dirección de facturación",
|
||||
"Dirección de envío",
|
||||
"Descripción",
|
||||
"Referencia",
|
||||
"Fecha venta",
|
||||
"Plazo de pago",
|
||||
"Almacén",
|
||||
"Moneda",
|
||||
"Líneas/Producto",
|
||||
"Líneas/Cantidad",
|
||||
"Líneas/Precio unitario",
|
||||
"Líneas/Unidad",
|
||||
"Empresa",
|
||||
"Tienda",
|
||||
"Terminal de venta",
|
||||
"Autorecogida",
|
||||
"Comentario"
|
||||
]
|
||||
self.assertEqual(next(csv_reader), expected_header)
|
||||
|
||||
expected_rows = [
|
||||
[self.customer.name, self.customer.name, self.customer.name, "",
|
||||
"", "2024-09-02 00:00:00+00:00", "Contado", "Almacén",
|
||||
"Peso colombiano", self.product.name, "2", "3000.00", "Unidad",
|
||||
"TIENDA LA ILUSIÓN", "Tienda La Ilusion", "La Ilusion", "True", ""
|
||||
],
|
||||
["", "", "", "", "", "", "", "", "", self.product.name, "3",
|
||||
"5000.00", "Unidad", "", "", "", "", ""
|
||||
],
|
||||
]
|
||||
rows = list(csv_reader)
|
||||
self.assertEqual(rows, expected_rows)
|
||||
|
||||
def _create_sale(self):
|
||||
url = '/don_confiao/api/sales/'
|
||||
data = {
|
||||
|
||||
Reference in New Issue
Block a user