From 75c6978d5dbbc750ba19fd43af0f9ede9f560aa8 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Sun, 24 Oct 2021 13:10:20 +0200 Subject: [PATCH] [14.0][IMP] intrastat_product: Add test for declaration line values --- intrastat_product/tests/common_sale.py | 30 ++++++++++++++++++++++ intrastat_product/tests/test_sale_order.py | 10 +++----- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/intrastat_product/tests/common_sale.py b/intrastat_product/tests/common_sale.py index 9dc07ca..28bc782 100644 --- a/intrastat_product/tests/common_sale.py +++ b/intrastat_product/tests/common_sale.py @@ -11,6 +11,36 @@ class IntrastatSaleCommon(IntrastatProductCommon): - Customer in Netherlands """ + def _check_line_values(self, final=False, declaration=None, sale=None): + """ + This method allows to test computation lines and declaration + lines values from original sale order line + """ + if declaration is None: + declaration = self.declaration + if sale is None: + sale = self.sale + for line in sale.order_line: + expected_vals = { + "declaration_type": "dispatches", + "suppl_unit_qty": line.qty_delivered, + "hs_code_id": line.product_id.hs_code_id, + "product_origin_country_id": line.product_id.origin_country_id, + } + comp_line = declaration.computation_line_ids.filtered( + lambda cline: cline.product_id == line.product_id + ) + self.assertTrue( + all(comp_line[key] == val for key, val in expected_vals.items()) + ) + if final: + decl_line = declaration.declaration_line_ids.filtered( + lambda dline: comp_line in dline.computation_line_ids + ) + self.assertTrue( + all(decl_line[key] == val for key, val in expected_vals.items()) + ) + @classmethod def _init_customer(cls, vals=None): values = { diff --git a/intrastat_product/tests/test_sale_order.py b/intrastat_product/tests/test_sale_order.py index e3e6819..7d5b411 100644 --- a/intrastat_product/tests/test_sale_order.py +++ b/intrastat_product/tests/test_sale_order.py @@ -79,13 +79,9 @@ class TestIntrastatProductSale(IntrastatSaleCommon): self._create_declaration(vals) self.declaration.action_gather() - expected_vals = { - "declaration_type": "dispatches", - "suppl_unit_qty": 3.0, - "hs_code_id": self.hs_code_computer, - } - line = self.declaration.computation_line_ids - self.assertDictContainsSubset(expected_vals, line) + self._check_line_values() + self.declaration.generate_declaration() + self._check_line_values(final=True) class TestIntrastatProductSaleCase(TestIntrastatProductSale, SavepointCase):