summaryrefslogtreecommitdiff
path: root/addons/hr_contract/tests/test_auto_status.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_contract/tests/test_auto_status.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (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.py69
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')