OCA reporting engine fork for dev and update.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.6 KiB

  1. # Copyright 2017 Creu Blanca
  2. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  3. import xml.etree.ElementTree as ET
  4. from odoo.tests import common
  5. from odoo.addons.base.models.qweb import QWebException
  6. class TestReportQWebParameter(common.TransactionCase):
  7. def test_qweb_parameter(self):
  8. report_name = "report_qweb_parameter.test_report_length"
  9. report_obj = self.env["ir.actions.report"]
  10. report_object = report_obj._get_report_from_name(report_name)
  11. docs = self.env["res.company"].create(
  12. {
  13. "name": "Test company",
  14. "street": "12345678901",
  15. "vat": "12345678901",
  16. "company_registry": "1234567890",
  17. }
  18. )
  19. docs.website = "1234567890" # for avoding that Odoo adds http://
  20. rep = report_object._render(docs.ids, False)
  21. root = ET.fromstring(rep[0])
  22. self.assertEqual(root[0].text, "1234567890")
  23. self.assertEqual(root[2].text, "1234567890")
  24. docs.update({"street": "123456789"})
  25. with self.assertRaises(QWebException):
  26. report_object._render(docs.ids, False)
  27. docs.update({"street": "1234567890", "vat": "123456789"})
  28. with self.assertRaises(QWebException):
  29. report_object._render(docs.ids, False)
  30. docs.update({"vat": "1234567890", "website": "12345678901"})
  31. with self.assertRaises(QWebException):
  32. report_object._render(docs.ids, False)
  33. docs.update({"website": "1234567890", "company_registry": "12345678901"})
  34. with self.assertRaises(QWebException):
  35. report_object._render(docs.ids, False)