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.

39 lines
1.6 KiB

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