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.

92 lines
2.8 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2017 LasLabs Inc.
  3. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
  4. from mock import patch
  5. from odoo.tests.common import TransactionCase
  6. from ..status_constants import ONLINE, AWAY, OFFLINE
  7. GET_PRESENCE = 'odoo.addons.bus_presence_override.models.res_partner.' \
  8. 'ResPartner._get_partners_presence'
  9. class TestResPartner(TransactionCase):
  10. def setUp(self):
  11. super(TestResPartner, self).setUp()
  12. self.admin = self.env.ref(
  13. 'base.partner_root',
  14. )
  15. @patch(GET_PRESENCE)
  16. def test_compute_im_status_online(self, get_presence):
  17. """ im_status_custom and im_status should both be online """
  18. get_presence.return_value = {self.admin.id: ONLINE}
  19. self.admin.im_status_custom = ONLINE
  20. self.assertEquals(
  21. ONLINE,
  22. self.admin.im_status,
  23. )
  24. self.assertEquals(
  25. ONLINE,
  26. self.admin.im_status_custom,
  27. )
  28. @patch(GET_PRESENCE)
  29. def test_compute_im_status_custom_away_override(self, get_presence):
  30. """ im_status_custom away should override im_status """
  31. get_presence.return_value = {self.admin.id: ONLINE}
  32. self.admin.im_status_custom = AWAY
  33. self.assertEquals(
  34. AWAY,
  35. self.admin.im_status,
  36. )
  37. self.assertEquals(
  38. AWAY,
  39. self.admin.im_status_custom,
  40. )
  41. @patch(GET_PRESENCE)
  42. def test_compute_im_status_custom_offline_override(self, get_presence):
  43. """ im_status_custom offline should override im_status """
  44. get_presence.return_value = {self.admin.id: ONLINE}
  45. self.admin.im_status_custom = OFFLINE
  46. self.assertEquals(
  47. OFFLINE,
  48. self.admin.im_status,
  49. )
  50. self.assertEquals(
  51. OFFLINE,
  52. self.admin.im_status_custom,
  53. )
  54. @patch(GET_PRESENCE)
  55. def test_compute_im_status_away_override(self, get_presence):
  56. """ im_status away should override im_status_custom """
  57. get_presence.return_value = {self.admin.id: AWAY}
  58. self.admin.im_status_custom = ONLINE
  59. self.assertEquals(
  60. AWAY,
  61. self.admin.im_status,
  62. )
  63. self.assertEquals(
  64. AWAY,
  65. self.admin.im_status_custom,
  66. )
  67. @patch(GET_PRESENCE)
  68. def test_compute_im_status_offline_override(self, get_presence):
  69. """ im_status offline should override im_status_custom """
  70. get_presence.return_value = {self.admin.id: OFFLINE}
  71. self.admin.im_status_custom = ONLINE
  72. self.assertEquals(
  73. OFFLINE,
  74. self.admin.im_status,
  75. )
  76. self.assertEquals(
  77. OFFLINE,
  78. self.admin.im_status_custom,
  79. )