forked from Mapan/odoo17e
58 lines
1.9 KiB
Python
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')
|