Files

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')