19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -1,25 +1,24 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from freezegun import freeze_time
from datetime import date
from dateutil.relativedelta import relativedelta
from odoo import Command, fields
from odoo.tests.common import new_test_user, tagged, TransactionCase, users
from odoo.addons.mail.tools.discuss import Store
from odoo import Command
from odoo.tests.common import tagged, TransactionCase
from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT
@tagged('post_install', '-at_install')
class TestPartner(TransactionCase):
@classmethod
@freeze_time('2024-06-04')
def setUpClass(cls):
super().setUpClass()
# use a single value for today throughout the tests to avoid weird scenarios around midnight
cls.today = date.today()
cls.today = fields.Date.today()
baseUser = cls.env['res.users'].create({
'email': 'e.e@example.com',
'groups_id': [Command.link(cls.env.ref('base.group_user').id)],
'group_ids': [Command.link(cls.env.ref('base.group_user').id)],
'login': 'emp',
'name': 'Ernest Employee',
'notification_type': 'inbox',
@ -36,32 +35,49 @@ class TestPartner(TransactionCase):
'user_id': user.id,
} for user in cls.users])
cls.leave_type = cls.env['hr.leave.type'].create({
'requires_allocation': 'no',
'requires_allocation': False,
'name': 'Legal Leaves',
'time_type': 'leave',
'responsible_ids': cls.users.ids
})
cls.leaves = cls.env['hr.leave'].create([{
'date_from': cls.today + relativedelta(days=-2),
'date_to': cls.today + relativedelta(days=2),
'request_date_from': "2024-06-03",
'request_date_to': "2024-06-06",
'employee_id': cls.employees[0].id,
'holiday_status_id': cls.leave_type.id,
}, {
'date_from': cls.today + relativedelta(days=-2),
'date_to': cls.today + relativedelta(days=3),
'request_date_from': "2024-06-02",
'request_date_to': "2024-06-05",
'employee_id': cls.employees[1].id,
'holiday_status_id': cls.leave_type.id,
}])
cls.user_no_hr_access = new_test_user(
cls.env, login="user_no_hr_access",
)
def test_res_partner_mail_partner_format(self):
@freeze_time('2024-06-04')
def test_res_partner_to_store(self):
self.leaves.write({'state': 'validate'})
self.assertEqual(
self.partner.mail_partner_format()[self.partner]['out_of_office_date_end'],
(self.today + relativedelta(days=2)).strftime(DEFAULT_SERVER_DATE_FORMAT),
'Return date is the first return date of all users associated with a partner',
Store().add(self.partner).get_result()["hr.employee"][0]["leave_date_to"],
"2024-06-07",
"Return date is the return date of the main user of the partner",
)
self.leaves[1].action_refuse()
self.leaves[0].action_refuse()
self.assertEqual(
self.partner.mail_partner_format()[self.partner]['out_of_office_date_end'],
Store().add(self.partner).get_result()["hr.employee"][0]["leave_date_to"],
False,
'Partner is not considered out of office if one of their users is not on holiday',
"Partner is not considered out of office if their main user is not on holiday",
)
@freeze_time("2024-06-04")
@users("user_no_hr_access")
def test_res_partner_to_store_no_hr_access(self):
self.leaves.write({"state": "validate"})
data = Store().add(self.partner.with_user(self.user_no_hr_access)).get_result()
self.assertEqual(
data["hr.employee"][0]["leave_date_to"],
"2024-06-07",
"Return date is the return date of the main user of the partner, "
"even if the user has no access to the company",
)