From e63190f9e2eb116ed71c5a68c53b80b921fbfbb4 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 4 Dec 2024 21:14:34 +0100 Subject: [PATCH] fixup! [IMP] account_edi_simple_pdf: increase test coverage --- .../tests/test_invoice_import.py | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/account_edi_simple_pdf/tests/test_invoice_import.py b/account_edi_simple_pdf/tests/test_invoice_import.py index feb4696048..80c9fc4597 100644 --- a/account_edi_simple_pdf/tests/test_invoice_import.py +++ b/account_edi_simple_pdf/tests/test_invoice_import.py @@ -5,7 +5,7 @@ import base64 from odoo import exceptions, fields -from odoo.tests.common import TransactionCase, tagged +from odoo.tests.common import Form, TransactionCase, tagged from odoo.tools import file_open, float_compare @@ -505,6 +505,43 @@ def test_invoice_number_parsing(self): ) self.assertEqual(src, parsed_inv["invoice_number"]) + def test_description_parsing(self): + field = self.env["account.invoice.import.simple.pdf.fields"].create( + { + "name": "description", + "regexp": ".*", + "extract_rule": "position_start", + } + ) + with self.assertRaisesRegex( + exceptions.ValidationError, "Specific Regular Expression" + ): + field.regexp = False + with Form(field) as field_form: + field_form.extract_rule = False + field_form.name = "description" + field_form.regexp = "desc: .*" + self.assertEqual(field.extract_rule, "first") + parsed_inv = {"failed_fields": []} + field._get_description(parsed_inv, "", {}, {}) + self.assertIn("description", parsed_inv["failed_fields"]) + parsed_inv = {} + field._get_description(parsed_inv, "desc: hello world", {}, {}) + self.assertEqual(parsed_inv["description"], "desc: hello world") + parsed_inv = {} + field.extract_rule = "position_min" + field.position = 1 + field._get_description(parsed_inv, "desc: 1\ndesc: 2", {}, {}) + self.assertEqual(parsed_inv["description"], "desc: 1") + parsed_inv = {} + field.extract_rule = "min" + field._get_description(parsed_inv, "desc: 1\ndesc: 2", {}, {}) + self.assertEqual(parsed_inv["description"], "desc: 1") + parsed_inv = {} + field.extract_rule = "max" + field._get_description(parsed_inv, "desc: 1\ndesc: 2", {}, {}) + self.assertEqual(parsed_inv["description"], "desc: 2") + def test_complete_import(self): attachment = self.env["ir.attachment"].create( {