1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/planning/tests/test_publication.py
2024-12-10 09:04:09 +07:00

58 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details
from datetime import datetime
from .common import TestCommonPlanning
class TestPlanningPublishing(TestCommonPlanning):
@classmethod
def setUpClass(cls):
super(TestPlanningPublishing, cls).setUpClass()
cls.setUpEmployees()
# employee without work email
cls.employee_dirk_no_mail = cls.env['hr.employee'].create({
'user_id': False,
'name': 'Dirk',
'work_email': False,
'tz': 'UTC'
})
cls.resource_dirk = cls.employee_dirk_no_mail.resource_id
values = {
'resource_id': cls.resource_joseph.id,
'allocated_hours': 8,
'start_datetime': datetime(2019, 6, 6, 8, 0, 0),
'end_datetime': datetime(2019, 6, 6, 17, 0, 0)
}
cls.shift = cls.env['planning.slot'].create(values)
def test_planning_publication(self):
self.shift.write({
'allocated_hours': 10
})
Mails = self.env['mail.mail'].sudo()
before_mails = Mails.search([])
self.shift.action_send()
self.assertEqual(self.shift.state, 'published', 'planning is published when we call its action_send')
shift_mails = set(Mails.search([])) ^ set(before_mails)
self.assertEqual(len(shift_mails), 1, 'only one mail is created when publishing planning')
def test_sending_planning_do_not_create_mail_if_employee_has_no_email(self):
self.shift.write({'resource_id': self.resource_dirk.id})
self.assertFalse(self.employee_dirk_no_mail.work_email) # if no work_email
Mails = self.env['mail.mail'].sudo()
before_mails = Mails.search([])
self.shift.action_send()
shift_mails = set(Mails.search([])) ^ set(before_mails)
self.assertEqual(len(shift_mails), 0, 'no mail should be sent when the employee has no work email')