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.

89 lines
3.4 KiB

  1. # Copyright 2020 NextERP Romania SRL
  2. # Copyright 2021 Tecnativa - Víctor Martínez
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  4. from odoo.tests import common
  5. from .fake_models import ResUsers, setup_test_model, teardown_test_model
  6. class TestCommentTemplate(common.SavepointCase):
  7. @classmethod
  8. def setUpClass(cls):
  9. super().setUpClass()
  10. setup_test_model(cls.env, ResUsers)
  11. cls.user_obj = cls.env.ref("base.model_res_users")
  12. cls.user = cls.env.ref("base.user_demo")
  13. cls.user2 = cls.env.ref("base.demo_user0")
  14. cls.partner_id = cls.env.ref("base.res_partner_12")
  15. cls.partner2_id = cls.env.ref("base.res_partner_10")
  16. cls.main_company = cls.env.ref("base.main_company")
  17. cls.company = cls.env["res.company"].create({"name": "Test company"})
  18. cls.before_template_id = cls.env["base.comment.template"].create(
  19. {
  20. "name": "Top template",
  21. "text": "Text before lines",
  22. "model_ids": [(6, 0, cls.user_obj.ids)],
  23. "company_id": cls.company.id,
  24. }
  25. )
  26. cls.after_template_id = cls.env["base.comment.template"].create(
  27. {
  28. "name": "Bottom template",
  29. "position": "after_lines",
  30. "text": "Text after lines",
  31. "model_ids": [(6, 0, cls.user_obj.ids)],
  32. "company_id": cls.company.id,
  33. }
  34. )
  35. cls.user.partner_id.base_comment_template_ids = [
  36. (4, cls.before_template_id.id),
  37. (4, cls.after_template_id.id),
  38. ]
  39. @classmethod
  40. def tearDownClass(cls):
  41. teardown_test_model(cls.env, ResUsers)
  42. super(TestCommentTemplate, cls).tearDownClass()
  43. def test_template_name_get(self):
  44. self.assertEqual(
  45. self.before_template_id.display_name,
  46. "Top template (Top)",
  47. )
  48. self.assertEqual(
  49. self.after_template_id.display_name,
  50. "Bottom template (Bottom)",
  51. )
  52. def test_general_template(self):
  53. # Need to force _compute because only trigger when partner_id have changed
  54. self.user._compute_comment_template_ids()
  55. # Check getting default comment template
  56. self.assertTrue(self.before_template_id in self.user.comment_template_ids)
  57. self.assertTrue(self.after_template_id in self.user.comment_template_ids)
  58. def test_partner_template(self):
  59. self.partner2_id.base_comment_template_ids = [
  60. (4, self.before_template_id.id),
  61. (4, self.after_template_id.id),
  62. ]
  63. self.assertTrue(
  64. self.before_template_id in self.partner2_id.base_comment_template_ids
  65. )
  66. self.assertTrue(
  67. self.after_template_id in self.partner2_id.base_comment_template_ids
  68. )
  69. def test_partner_template_domain(self):
  70. # Check getting the comment template if domain is set
  71. self.partner2_id.base_comment_template_ids = [
  72. (4, self.before_template_id.id),
  73. (4, self.after_template_id.id),
  74. ]
  75. self.before_template_id.domain = "[('id', 'in', %s)]" % self.user.ids
  76. self.assertTrue(
  77. self.before_template_id in self.partner2_id.base_comment_template_ids
  78. )
  79. self.assertTrue(
  80. self.before_template_id not in self.partner_id.base_comment_template_ids
  81. )