diff --git a/account_invoice_import_invoice2data/demo/demo_data.xml b/account_invoice_import_invoice2data/demo/demo_data.xml
index d32cd646ed5..a1926b055e6 100644
--- a/account_invoice_import_invoice2data/demo/demo_data.xml
+++ b/account_invoice_import_invoice2data/demo/demo_data.xml
@@ -30,5 +30,46 @@
+
+ Beeswax XL
+ Acme beeswax
+ 17589684
+ 42
+ consu
+
+
+
+
+
+ Olive Oil
+
+
+
+ consu
+
+
+ 987123
+
+
+
+
+ Luxury Truffles
+
+
+
+ consu
+
+
+ LUX_TRF
+
+
+
+ Azure Interior Multiline Auto Product
+
+ nline_auto_product
+
diff --git a/account_invoice_import_invoice2data/tests/pdf/AzureInterior.pdf b/account_invoice_import_invoice2data/tests/pdf/AzureInterior.pdf
new file mode 100644
index 00000000000..b342e2b02bd
Binary files /dev/null and b/account_invoice_import_invoice2data/tests/pdf/AzureInterior.pdf differ
diff --git a/account_invoice_import_invoice2data/tests/test_invoice_import.py b/account_invoice_import_invoice2data/tests/test_invoice_import.py
index 8c5c30ee4d5..39ddb950e56 100644
--- a/account_invoice_import_invoice2data/tests/test_invoice_import.py
+++ b/account_invoice_import_invoice2data/tests/test_invoice_import.py
@@ -100,3 +100,98 @@ def test_import_free_invoice(self):
self.assertEqual(len(invoices), 1)
inv = invoices[0]
self.assertEqual(fields.Date.to_string(inv.invoice_date), "2015-07-02")
+
+ def test_import_azure_interior_invoice(self):
+ """Function for testing almost all supported fields"""
+ filename = "AzureInterior.pdf"
+ invoice_file = file_open(
+ "account_invoice_import_invoice2data/tests/pdf/" + filename, "rb"
+ )
+ pdf_file = invoice_file.read()
+ pdf_file_b64 = base64.b64encode(pdf_file)
+ wiz = self.env["account.invoice.import"].create(
+ {
+ "invoice_file": pdf_file_b64,
+ "invoice_filename": filename,
+ }
+ )
+ invoice_file.close()
+ wiz.import_invoice()
+ # create_invoice_action_button
+ wiz.create_invoice_action(origin="BOSD Import Vendor Bill wizard")
+ # Check result of invoice creation
+ invoices = self.env["account.move"].search(
+ [
+ ("state", "=", "draft"),
+ # ("move_type", "=", "in_invoice"),
+ # ("ref", "=", "INV/2023/03/0008"),
+ ("ref", "ilike", "INV"),
+ ]
+ )
+ self.assertEqual(len(invoices), 1)
+ inv = invoices[0]
+ self.assertEqual(inv.move_type, "in_invoice")
+ self.assertEqual(fields.Date.to_string(inv.invoice_date), "2023-03-20")
+ self.assertEqual(inv.partner_id, self.env.ref("base.res_partner_12"))
+ self.assertEqual(inv.journal_id.type, "purchase")
+ self.assertEqual(float_compare(inv.amount_total, 279.84, precision_digits=2), 0)
+ self.assertEqual(
+ float_compare(inv.amount_untaxed, 262.9, precision_digits=2), 0
+ )
+
+ self.assertEqual(
+ inv.narration,
+ "Due to global inflation our payment term has changed to 15 days.",
+ )
+
+ # Following tests are disabled. Not yet implemented in account_invoice_import
+ # self.assertEqual(inv.journal_id.payment_reference, "202309097001")
+ # self.assertEqual(inv.journal_id.incoterm_id, self.env.ref("account.incoterm_DPU")
+
+ self.assertEqual(len(inv.invoice_line_ids), 8)
+ iline = inv.invoice_line_ids[0]
+ self.assertEqual(iline.name, "--- Non Food ---")
+ self.assertEqual(iline.display_type, "line_section")
+ iline = inv.invoice_line_ids[1]
+ self.assertEqual(iline.name, "Beeswax XL\nAcme beeswax")
+ self.assertEqual(
+ iline.product_id,
+ self.env.ref("account_invoice_import_invoice2data.product_beeswax_xl"),
+ )
+ self.assertEqual(float_compare(iline.quantity, 1.0, precision_digits=0), 0)
+ self.assertEqual(float_compare(iline.price_unit, 42.00, precision_digits=2), 0)
+
+ iline = inv.invoice_line_ids[2]
+ self.assertEqual(iline.name, "Office Chair")
+ self.assertEqual(
+ iline.product_id,
+ self.env.ref("product.product_delivery_01"),
+ )
+ self.assertEqual(float_compare(iline.quantity, 1.0, precision_digits=0), 0)
+ self.assertEqual(float_compare(iline.price_unit, 70.00, precision_digits=2), 0)
+
+ iline = inv.invoice_line_ids[3]
+ self.assertEqual(iline.name, "--- Food Products ---")
+ self.assertEqual(iline.display_type, "line_section")
+ iline = inv.invoice_line_ids[4]
+ self.assertEqual(iline.name, "Olive Oil")
+ self.assertEqual(
+ iline.product_id,
+ self.env.ref("account_invoice_import_invoice2data.olive_oil"),
+ )
+ # todo test discount, not yet implemented in account_invoice_import
+ self.assertEqual(float_compare(iline.quantity, 1.0, precision_digits=0), 0)
+ self.assertEqual(float_compare(iline.price_unit, 1.00, precision_digits=2), 0)
+ iline = inv.invoice_line_ids[5]
+ self.assertEqual(
+ iline.name, "Our Olive Oil is delivered in a re-usable glass container"
+ )
+ self.assertEqual(iline.display_type, "line_note")
+ iline = inv.invoice_line_ids[6]
+ self.assertEqual(iline.name, "Luxury Truffles")
+ self.assertEqual(
+ iline.product_id,
+ self.env.ref("account_invoice_import_invoice2data.luxury_truffles"),
+ )
+ self.assertEqual(float_compare(iline.quantity, 15.0, precision_digits=0), 0)
+ self.assertEqual(float_compare(iline.price_unit, 10.00, precision_digits=2), 0)