81 lines
5.3 KiB
Python
81 lines
5.3 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from freezegun import freeze_time
|
|
|
|
import odoo.tests
|
|
from odoo.addons.mail.tests.common import MockEmail
|
|
from . import common
|
|
|
|
|
|
@odoo.tests.tagged('-at_install', 'post_install', 'salary')
|
|
class Testl10nBeHrPayrollAccountUi(MockEmail, common.TestPayrollAccountCommon):
|
|
|
|
@classmethod
|
|
@freeze_time('2022-01-01 09:00:00')
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.env.ref('base.user_admin').group_ids |= cls.env.ref('hr.group_hr_user')
|
|
|
|
def test_ui(self):
|
|
self._init_mail_gateway()
|
|
with freeze_time("2022-01-01 10:00:00"):
|
|
self.start_tour("/", 'hr_contract_salary_tour', login='admin', timeout=350)
|
|
|
|
new_employee_id = self.env['hr.employee'].search([('name', 'ilike', 'nathalie'), ('active', '=', False)])
|
|
new_version = self.env['hr.version'].search([('employee_id', '=', new_employee_id.id), ('active', '=', False)])
|
|
self.assertTrue(new_version, 'A archived contract has been created')
|
|
self.assertTrue(new_employee_id, 'An employee has been created')
|
|
self.assertFalse(new_employee_id.active, 'Employee is not yet active')
|
|
|
|
# asserts that '0' values automatically filled are actually being saved
|
|
children_count = self.env['sign.request.item.value'].search([
|
|
('sign_item_id.name', '=', "children"),
|
|
('sign_request_id', '=', new_version.sign_request_ids.id)
|
|
], limit=1)
|
|
self.assertEqual(children_count.value, '0')
|
|
|
|
with freeze_time("2022-01-01 11:00:00"):
|
|
self.start_tour("/", 'hr_contract_salary_tour_hr_sign', login='admin', timeout=350)
|
|
# Contract is signed by new employee and HR, the new car must be created, and the allocation should be created and validated
|
|
new_employee_id = self.env['hr.employee'].search([('name', 'ilike', 'nathalie')])
|
|
new_version = self.env['hr.version'].search([('employee_id', '=', new_employee_id.id)])
|
|
self.assertTrue(new_version, 'A contract has been created')
|
|
vehicle = self.env['fleet.vehicle'].search([('company_id', '=', self.company_id.id), ('model_id', '=', self.model_a3.id)])
|
|
self.assertTrue(vehicle, 'A vehicle Exists')
|
|
self.assertEqual(vehicle.future_driver_id, new_employee_id.work_contact_id, 'Futur driver is set')
|
|
self.assertEqual(vehicle.company_id, new_version.company_id, 'Vehicle is in the right company')
|
|
self.assertEqual(vehicle, new_version.car_id, 'Car id is set properly')
|
|
allocation = self.env['hr.leave.allocation'].search([('employee_id', '=', new_employee_id.id), ('holiday_status_id', '=', self.extra_days_time_off_type.id)])
|
|
self.assertTrue(allocation, 'Allocation has been created')
|
|
self.assertEqual(allocation.number_of_days, 3, 'Correct number of extra days allocated')
|
|
self.assertEqual(allocation.state, 'validate', 'Allocation has been validated')
|
|
self.assertTrue(new_employee_id.active, 'Employee is now active')
|
|
|
|
# In the new contract, we can choose to order a car in the wishlist.
|
|
self.env['ir.config_parameter'].sudo().set_param('l10n_be_hr_payroll_fleet.max_unused_cars', 1)
|
|
|
|
with freeze_time("2022-01-01 12:00:00"):
|
|
self.start_tour("/", 'hr_contract_salary_tour_2', login='admin', timeout=350)
|
|
new_employee_id = self.env['hr.employee'].search([('name', 'ilike', 'Mitchell Admin 3')])
|
|
new_version = self.env['hr.version'].search([('employee_id', '=', new_employee_id.id), ('active', '=', False)])
|
|
self.assertTrue(new_version, 'A archived contract has been created')
|
|
self.assertTrue(new_employee_id, 'An employee has been created')
|
|
self.assertTrue(new_employee_id.active, 'Employee is active')
|
|
self.assertEqual(new_version.new_car_model_id, self.model_corsa, 'Car is right model')
|
|
|
|
vehicle = self.env['fleet.vehicle'].search([('company_id', '=', self.company_id.id), ('model_id', '=', self.model_corsa.id)])
|
|
self.assertFalse(vehicle, 'A vehicle has not been created')
|
|
|
|
with freeze_time("2022-01-01 13:00:00"):
|
|
# We now fully sign the offer to see if the vehicle to order is created correctly
|
|
self.start_tour("/", 'hr_contract_salary_tour_counter_sign', login='admin', timeout=350)
|
|
new_version = self.env['hr.version'].search([('employee_id', '=', new_employee_id.id)])
|
|
self.assertTrue(new_version, 'A contract has been created')
|
|
vehicle = self.env['fleet.vehicle'].search([('company_id', '=', self.company_id.id), ('model_id', '=', self.model_corsa.id)])
|
|
self.assertTrue(vehicle, 'A vehicle has been created')
|
|
self.assertEqual(vehicle.model_id, self.model_corsa, 'Car is right model')
|
|
self.assertEqual(vehicle.future_driver_id, new_employee_id.work_contact_id, 'Future Driver is set correctly')
|
|
self.assertEqual(vehicle, new_version.ordered_car_id, 'Ordered Car appears in contract')
|
|
self.assertEqual(vehicle.state_id, self.env.ref('fleet.fleet_vehicle_state_new_request'), 'Car created in right state')
|
|
self.assertEqual(vehicle.company_id, new_version.company_id, 'Vehicle is in the right company')
|