Odoo18-Base/enterprise-17.0/planning/tests/common.py
2025-01-06 10:57:38 +07:00

70 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details
from contextlib import contextmanager
from odoo import fields
from odoo.tests.common import TransactionCase
class TestCommonPlanning(TransactionCase):
@contextmanager
def _patch_now(self, datetime_str):
datetime_now_old = getattr(fields.Datetime, 'now')
datetime_today_old = getattr(fields.Datetime, 'today')
date_today_old = getattr(fields.Date, 'today')
def new_now():
return fields.Datetime.from_string(datetime_str)
def new_today():
return fields.Datetime.from_string(datetime_str).replace(hour=0, minute=0, second=0)
def new_date_today():
return fields.Date.from_string(datetime_str)
try:
setattr(fields.Datetime, 'now', new_now)
setattr(fields.Datetime, 'today', new_today)
setattr(fields.Date, 'today', new_date_today)
yield
finally:
# back
setattr(fields.Datetime, 'now', datetime_now_old)
setattr(fields.Datetime, 'today', datetime_today_old)
setattr(fields.Date, 'today', date_today_old)
def get_by_employee(self, employee):
return self.env['planning.slot'].search([('employee_id', '=', employee.id)])
@classmethod
def setUpEmployees(cls):
cls.env.user.tz = "Europe/Brussels"
cls.employee_joseph = cls.env['hr.employee'].create({
'name': 'joseph',
'work_email': 'joseph@a.be',
'tz': 'UTC',
'employee_type': 'freelance',
'create_date': '2015-01-01 00:00:00',
})
cls.resource_joseph = cls.employee_joseph.resource_id
cls.employee_bert = cls.env['hr.employee'].create({
'name': 'bert',
'work_email': 'bert@a.be',
'tz': 'UTC',
'employee_type': 'freelance',
'create_date': '2015-01-01 00:00:00',
})
cls.resource_bert = cls.employee_bert.resource_id
cls.employee_janice = cls.env['hr.employee'].create({
'name': 'janice',
'work_email': 'janice@a.be',
'tz': 'America/New_York',
'employee_type': 'freelance',
'create_date': '2015-01-01 00:00:00',
})
cls.resource_janice = cls.employee_janice.resource_id