69 lines
2.7 KiB
Python
69 lines
2.7 KiB
Python
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from datetime import datetime
|
||
|
|
||
|
from .common import TestContractCommon
|
||
|
|
||
|
|
||
|
class TestHrEmployee(TestContractCommon):
|
||
|
|
||
|
def create_contract(self, state, kanban_state, start, end=None):
|
||
|
return self.env['hr.contract'].create({
|
||
|
'name': 'Contract',
|
||
|
'employee_id': self.employee.id,
|
||
|
'state': state,
|
||
|
'kanban_state': kanban_state,
|
||
|
'wage': 1,
|
||
|
'date_start': start,
|
||
|
'date_end': end,
|
||
|
})
|
||
|
|
||
|
def test_employee_first_contract_date_base_case(self):
|
||
|
'''
|
||
|
Test if when a contract is attached to an employee, the
|
||
|
first_contract_date is updated accordingly.
|
||
|
'''
|
||
|
start = datetime.strptime('2015-11-01', '%Y-%m-%d').date()
|
||
|
self.create_contract('open', 'normal', start)
|
||
|
self.assertEqual(
|
||
|
self.employee.first_contract_date, start,
|
||
|
'The first_contract_date should be the start date of the contract.'
|
||
|
)
|
||
|
|
||
|
def test_employee_first_contract_date_archived_contract(self):
|
||
|
'''
|
||
|
Test if when a contract is attached to an employee, the
|
||
|
first_contract_date is updated accordingly when archived.
|
||
|
'''
|
||
|
start = datetime.strptime('2015-11-01', '%Y-%m-%d').date()
|
||
|
contract = self.create_contract('open', 'normal', start)
|
||
|
self.assertEqual(
|
||
|
self.employee.first_contract_date, start,
|
||
|
'The first_contract_date should be the start date of the contract.',
|
||
|
)
|
||
|
contract.action_archive()
|
||
|
self.assertEqual(
|
||
|
self.employee.first_contract_date, False,
|
||
|
'The first_contract_date should be False when the contract is archived. '
|
||
|
'Because no active contract is attached to the employee.',
|
||
|
)
|
||
|
|
||
|
def test_employee_first_contract_date_multiple_contracts(self):
|
||
|
'''
|
||
|
Test if when multiple contracts are attached to an employee, the
|
||
|
first_contract_date is updated accordingly.
|
||
|
'''
|
||
|
start1 = datetime.strptime('2015-11-01', '%Y-%m-%d').date()
|
||
|
start2 = datetime.strptime('2016-11-01', '%Y-%m-%d').date()
|
||
|
contract1 = self.create_contract('open', 'normal', start1)
|
||
|
self.create_contract('draft', 'normal', start2)
|
||
|
self.assertEqual(
|
||
|
self.employee.first_contract_date, start1,
|
||
|
'The first_contract_date should be the start date of the first contract.',
|
||
|
)
|
||
|
contract1.action_archive()
|
||
|
self.assertEqual(
|
||
|
self.employee.first_contract_date, start2,
|
||
|
'The first_contract_date should be the start date of the second contract.',
|
||
|
)
|