Daily updates from Odoo
Wednesday, November 20, 2019
2 changes
Code cleanup and technical improvements
This change centralizes email and messaging test helpers in the core Mail module so other related modules can reuse them instead of maintaining duplicate tools. It improves consistency and reliability of future testing for messaging, notifications, and mass mailing without changing everyday user workflows.
Original PR description
PURPOSE Currently tools and asserts for mail tests are located inside test_mail module. It makes difficult to re-use them in application tests or force them to write custom quick and dirty tools and…
PURPOSE
Currently tools and asserts for mail tests are located inside test_mail
module. It makes difficult to re-use them in application tests or force them
to write custom quick and dirty tools and asserts. Purpose of this merge
is therefore to move tools classes and mocks to mail directly and use them
in various sub modules.
SPECIFICATIONS
Have class, mocks, tools and asserts available in mail so that all modules
below from mail can use them.
Including
* mock mail gateway in a clean way: mock server connection, email building
and sending;
* allow to simulate errors while sending emails to test corner cases;
* provide tools to insert emails in mail gateway;
* mock mail application to check record creation (message, notifications,
mails, ...);
* mock bus notification;
* provide clearer assert methods for bus and mail notifications;
* provide clearer emails sending and content methods;
* provide a with_user tool context manager for tests allowing to quickly
change current user given a login;
Most of those tools, asserts and mocks come from test_mail/tests/common.py.
They have been partially rewritten to be easier to use or to perform tests
more cleanly.
In this merge we gradually apply changes on existing tests in test_mail,
test_mass_mailing and test_mail_full. First commits will provide the new
classes, then tests will be updated, and finally dead classes removed.
Having it done step by step make it easier to read and understand.
LINKS
Task ID 2068986
PR #38070Work entry management has been split out so it can be used independently from Payroll, while Payroll no longer forces installation of Time Off. This gives businesses more flexibility to manage attendance and contract-based work entries without enabling the full payroll or leave stack.
Original PR description
PURPOSE ======== It isn't possible to use work entries without Payroll. And it isn't possible to use payroll without Time Off. Before this commit: 1. If we install work_entry application, we have no…
PURPOSE ======== It isn't possible to use work entries without Payroll. And it isn't possible to use payroll without Time Off. Before this commit: 1. If we install work_entry application, we have no menu neither views. And if we add a view for this model, no work entries are created. 2. If we use payroll application, Time Off application is also installed. After this commit: We have 4 different applications: 1. hr_work_entry: Basic models and views, no menu. No modification is made in this module. 2. hr_work_entry_contract: Add menu payroll with only work entries. Add work entry generation mechanism based on contract and calendars. Time off from resource.calendar.leaves are also taken in account. 3. hr_work_entry_holidays: Depends of hr_work_entry_contract, links work entries with hr_leave. Management of conflicts due to leaves not approved. 4. hr_payroll: Depends of hr_work_entry_contract. When we generate a payslip, work entries are generated for this employee. When we manually adapt work entry lines (number of work hours), amounts are re-computed. TaskID 2116977