Add catalog sale purchase summary endpoint
- Add CatalogSaleSummarySerializer and CatalogSummarySaleLineSerializer - Add CatalogSaleSummary API view for GET requests - Register endpoint at /don_confiao/resumen_compra_catalogo_json/<id> - Add comprehensive test for catalog sale summary - Include nested customer and product details in response - Endpoint returns id, date, customer, and lines with products
This commit is contained in:
@@ -86,6 +86,49 @@ class TestAPI(APITestCase, LoginMixin):
|
||||
self.assertIn("csv", json_response)
|
||||
self.assertGreater(len(json_response["csv"]), 0)
|
||||
|
||||
def test_catalog_sale_summary(self):
|
||||
# Create a catalog sale
|
||||
response = self._create_catalog_sale()
|
||||
content = json.loads(response.content.decode("utf-8"))
|
||||
catalog_sale_id = content["id"]
|
||||
|
||||
# Get the summary
|
||||
url = f"/don_confiao/resumen_compra_catalogo_json/{catalog_sale_id}"
|
||||
response = self.client.get(url)
|
||||
|
||||
# Verify response
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
json_response = json.loads(response.content.decode("utf-8"))
|
||||
|
||||
# Verify structure
|
||||
self.assertIn("id", json_response)
|
||||
self.assertIn("date", json_response)
|
||||
self.assertIn("customer", json_response)
|
||||
self.assertIn("lines", json_response)
|
||||
|
||||
# Verify customer details
|
||||
self.assertEqual(json_response["customer"]["id"], self.customer.id)
|
||||
self.assertEqual(json_response["customer"]["name"], self.customer.name)
|
||||
|
||||
# Verify lines
|
||||
self.assertEqual(len(json_response["lines"]), 2)
|
||||
|
||||
# Verify first line
|
||||
line1 = json_response["lines"][0]
|
||||
self.assertIn("product", line1)
|
||||
self.assertIn("quantity", line1)
|
||||
self.assertIn("unit_price", line1)
|
||||
self.assertEqual(line1["product"]["id"], self.product.id)
|
||||
self.assertEqual(line1["product"]["name"], self.product.name)
|
||||
self.assertEqual(line1["quantity"], "2.00")
|
||||
self.assertEqual(line1["unit_price"], "3000.00")
|
||||
|
||||
# Verify second line
|
||||
line2 = json_response["lines"][1]
|
||||
self.assertEqual(line2["product"]["id"], self.product.id)
|
||||
self.assertEqual(line2["quantity"], "3.00")
|
||||
self.assertEqual(line2["unit_price"], "5000.00")
|
||||
|
||||
def test_csv_structure_in_sales_for_tryton(self):
|
||||
url = "/don_confiao/api/sales/for_tryton"
|
||||
self._create_sale()
|
||||
|
||||
Reference in New Issue
Block a user