diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_contract/tests/test_auto_status.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/hr_contract/tests/test_auto_status.py')
| -rw-r--r-- | addons/hr_contract/tests/test_auto_status.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/addons/hr_contract/tests/test_auto_status.py b/addons/hr_contract/tests/test_auto_status.py new file mode 100644 index 00000000..54b5654d --- /dev/null +++ b/addons/hr_contract/tests/test_auto_status.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from datetime import date, datetime +from dateutil.relativedelta import relativedelta +from odoo.addons.hr_contract.tests.common import TestContractCommon + + +class TestHrContracts(TestContractCommon): + + @classmethod + def setUpClass(cls): + super(TestHrContracts, cls).setUpClass() + cls.contracts = cls.env['hr.contract'].with_context(tracking_disable=True) + cls.test_contract = dict(name='Test', wage=1, employee_id=cls.employee.id, state='open') + + def test_employee_contractwarning(self): + self.assertEqual(self.employee.contract_warning, True) + + def apply_cron(self): + self.env.ref('hr_contract.ir_cron_data_contract_update_state').method_direct_trigger() + + def test_contract_enddate(self): + self.test_contract.update(dict(date_end=datetime.now() + relativedelta(days=100))) + self.contract = self.contracts.create(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'open') + self.assertEqual(self.contract.kanban_state, 'normal') + self.assertEqual(self.employee.contract_warning, False) + + self.test_contract.update(dict(date_end=datetime.now() + relativedelta(days=5))) + self.contract.write(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'open') + self.assertEqual(self.contract.kanban_state, 'blocked') + + self.test_contract.update({ + 'date_start': datetime.now() + relativedelta(days=-50), + 'date_end': datetime.now() + relativedelta(days=-1), + 'state': 'open', + 'kanban_state': 'blocked', + }) + self.contract.write(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'close') + + def test_contract_pending_visa_expire(self): + self.employee.visa_expire = date.today() + relativedelta(days=30) + self.test_contract.update(dict(date_end=False)) + self.contract = self.contracts.create(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'open') + self.assertEqual(self.contract.kanban_state, 'blocked') + + self.employee.visa_expire = date.today() + relativedelta(days=-5) + self.test_contract.update({ + 'date_start': datetime.now() + relativedelta(days=-50), + 'state': 'open', + 'kanban_state': 'blocked', + }) + self.contract.write(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'close') + + def test_contract_start_date(self): + self.test_contract.update(dict(date_start=datetime.now(), state='draft', kanban_state='done')) + self.contract = self.contracts.create(self.test_contract) + self.apply_cron() + self.assertEqual(self.contract.state, 'open') |
