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.

66 lines
2.7 KiB

  1. # -*- coding: utf-8 -*-
  2. # (c) 2015 Oihane Crucelaegui - AvanzOSC
  3. # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
  4. import openerp.tests.common as common
  5. from openerp import exceptions
  6. class TestBaseReportAutoQwebCreate(common.TransactionCase):
  7. def setUp(self):
  8. super(TestBaseReportAutoQwebCreate, self).setUp()
  9. self.report_model = self.env['ir.actions.report.xml']
  10. self.duplicate_model = self.env['ir.actions.report.xml.duplicate']
  11. self.view_model = self.env['ir.ui.view']
  12. def test_creation_html(self):
  13. report_html = self.report_model.create({
  14. 'name': 'Test 1',
  15. 'model': 'res.partner',
  16. 'report_type': 'qweb-html',
  17. 'report_name': 'test1.report_test',
  18. })
  19. report_html.button_create_qweb()
  20. view_num = self.view_model.search_count(
  21. [('name', 'ilike', report_html.report_name.split('.')[1]),
  22. ('type', '=', 'qweb')])
  23. self.assertNotEqual(view_num, 0, 'There are not related views')
  24. self.assertEqual(view_num, 1, 'Only one view must be created.')
  25. def test_creation_duplicate_pdf(self):
  26. report_pdf = self.report_model.create({
  27. 'name': 'Test 2',
  28. 'model': 'res.partner',
  29. 'report_type': 'qweb-pdf',
  30. 'report_name': 'test2.report_test',
  31. })
  32. report_pdf.button_create_qweb()
  33. view_num = self.view_model.search_count(
  34. [('name', 'ilike', report_pdf.report_name.split('.')[1]),
  35. ('type', '=', 'qweb')])
  36. self.assertNotEqual(view_num, 0, 'There are not related views.')
  37. self.assertEqual(view_num, 1, 'One view must be created.')
  38. wizard = self.duplicate_model.with_context(
  39. active_id=report_pdf.id, model=report_pdf.model).create({
  40. 'suffix': 'copytest',
  41. })
  42. wizard.duplicate_report()
  43. report_pdf_copies = self.report_model.search(
  44. [('report_name', 'ilike', 'test2_copytest.report_test_copytest')])
  45. for report_pdf_copy in report_pdf_copies:
  46. view_num2 = self.view_model.search_count(
  47. [('name', 'ilike', report_pdf_copy.report_name.split('.')[1]),
  48. ('type', '=', 'qweb')])
  49. self.assertNotEqual(view_num2, 0, 'There are not related views.')
  50. self.assertEqual(view_num2, view_num,
  51. 'Same view numbers must have been created.')
  52. def test_wrong_template_name(self):
  53. with self.assertRaises(exceptions.Warning):
  54. self.report_model.create({
  55. 'name': 'Test',
  56. 'model': 'res.partner',
  57. 'report_type': 'qweb-pdf',
  58. 'report_name': 'report_test',
  59. })