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.

50 lines
1.9 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2017 Creu Blanca
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  4. import xml.etree.ElementTree as ET
  5. from odoo.addons.base.ir.ir_qweb import QWebException
  6. from odoo.tests import common
  7. class TestReportQWebParameter(common.TransactionCase):
  8. def test_qweb_parameter(self):
  9. report_object = self.env['ir.actions.report.xml']
  10. report_name = 'report_qweb_parameter.test_report_length'
  11. docs = self.env['res.company'].search([], limit=1)
  12. vat = docs.vat
  13. website = docs.website
  14. fax = docs.fax
  15. company_registry = docs.company_registry
  16. docs.update({
  17. 'fax': '12345678901',
  18. 'vat': '12345678901',
  19. 'website': '1234567890',
  20. 'company_registry': '1234567890'
  21. })
  22. rep = report_object.render_report(docs.ids, report_name, False)
  23. root = ET.fromstring(
  24. rep[0]
  25. )
  26. self.assertEqual(root[1][0][0][0].text, "1234567890")
  27. self.assertEqual(root[1][0][0][2].text, "1234567890")
  28. docs.update({'fax': '123456789'})
  29. with self.assertRaises(QWebException):
  30. report_object.render_report(docs.ids, report_name, False)
  31. docs.update({'fax': '1234567890', 'vat': '123456789'})
  32. with self.assertRaises(QWebException):
  33. report_object.render_report(docs.ids, report_name, False)
  34. docs.update({'vat': '1234567890', 'website': '12345678901'})
  35. with self.assertRaises(QWebException):
  36. report_object.render_report(docs.ids, report_name, False)
  37. docs.update(
  38. {'website': '1234567890', 'company_registry': '12345678901'})
  39. with self.assertRaises(QWebException):
  40. report_object.render_report(docs.ids, report_name, False)
  41. docs.update({
  42. 'fax': fax,
  43. 'vat': vat,
  44. 'website': website,
  45. 'company_registry': company_registry
  46. })