457 lines
21 KiB
Python
457 lines
21 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from datetime import datetime, date
|
|
from odoo.addons.l10n_ch_hr_payroll.tests.swissdec_5_0 import TestSwissdec5Common
|
|
from odoo.tests.common import tagged
|
|
from freezegun import freeze_time
|
|
|
|
from odoo.tools import file_open
|
|
import json
|
|
|
|
|
|
@tagged('post_install_l10n', 'post_install', '-at_install', 'swissdec_payroll')
|
|
class TestSwissdecTestCases(TestSwissdec5Common):
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2021_11(self):
|
|
identifier = "yearly_retrospective_2021_11"
|
|
generated_dict = self.yearly_retrospective_2021_11._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2021_12(self):
|
|
identifier = "yearly_retrospective_2021_12"
|
|
generated_dict = self.yearly_retrospective_2021_12._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_01(self):
|
|
identifier = "yearly_retrospective_2022_01"
|
|
generated_dict = self.yearly_retrospective_2022_01._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_02(self):
|
|
identifier = "yearly_retrospective_2022_02"
|
|
generated_dict = self.yearly_retrospective_2022_02._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_03(self):
|
|
identifier = "yearly_retrospective_2022_03"
|
|
generated_dict = self.yearly_retrospective_2022_03._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_04(self):
|
|
identifier = "yearly_retrospective_2022_04"
|
|
generated_dict = self.yearly_retrospective_2022_04._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_05(self):
|
|
identifier = "yearly_retrospective_2022_05"
|
|
generated_dict = self.yearly_retrospective_2022_05._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_06(self):
|
|
identifier = "yearly_retrospective_2022_06"
|
|
generated_dict = self.yearly_retrospective_2022_06._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_07(self):
|
|
identifier = "yearly_retrospective_2022_07"
|
|
generated_dict = self.yearly_retrospective_2022_07._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_08(self):
|
|
identifier = "yearly_retrospective_2022_08"
|
|
generated_dict = self.yearly_retrospective_2022_08._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_09(self):
|
|
identifier = "yearly_retrospective_2022_09"
|
|
generated_dict = self.yearly_retrospective_2022_09._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_10(self):
|
|
identifier = "yearly_retrospective_2022_10"
|
|
generated_dict = self.yearly_retrospective_2022_10._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_11(self):
|
|
identifier = "yearly_retrospective_2022_11"
|
|
generated_dict = self.yearly_retrospective_2022_11._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2022_12(self):
|
|
identifier = "yearly_retrospective_2022_12"
|
|
generated_dict = self.yearly_retrospective_2022_12._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2023_01(self):
|
|
identifier = "yearly_retrospective_2023_01"
|
|
generated_dict = self.yearly_retrospective_2023_01._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_retrospective_2023_02(self):
|
|
identifier = "yearly_retrospective_2023_02"
|
|
generated_dict = self.yearly_retrospective_2023_02._get_declaration()
|
|
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2021_11(self):
|
|
identifier = "ema_declaration_2021_11"
|
|
generated_dict = self.ema_declaration_2021_11._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2021_12(self):
|
|
identifier = "ema_declaration_2021_12"
|
|
generated_dict = self.ema_declaration_2021_12._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_01(self):
|
|
identifier = "ema_declaration_2022_01"
|
|
generated_dict = self.ema_declaration_2022_01._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_02(self):
|
|
identifier = "ema_declaration_2022_02"
|
|
generated_dict = self.ema_declaration_2022_02._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_03(self):
|
|
identifier = "ema_declaration_2022_03"
|
|
generated_dict = self.ema_declaration_2022_03._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_04(self):
|
|
identifier = "ema_declaration_2022_04"
|
|
generated_dict = self.ema_declaration_2022_04._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_05(self):
|
|
identifier = "ema_declaration_2022_05"
|
|
generated_dict = self.ema_declaration_2022_05._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_06(self):
|
|
identifier = "ema_declaration_2022_06"
|
|
generated_dict = self.ema_declaration_2022_06._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_07(self):
|
|
identifier = "ema_declaration_2022_07"
|
|
generated_dict = self.ema_declaration_2022_07._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_08(self):
|
|
identifier = "ema_declaration_2022_08"
|
|
generated_dict = self.ema_declaration_2022_08._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_09(self):
|
|
identifier = "ema_declaration_2022_09"
|
|
generated_dict = self.ema_declaration_2022_09._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_10(self):
|
|
identifier = "ema_declaration_2022_10"
|
|
generated_dict = self.ema_declaration_2022_10._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_11(self):
|
|
identifier = "ema_declaration_2022_11"
|
|
generated_dict = self.ema_declaration_2022_11._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2022_12(self):
|
|
identifier = "ema_declaration_2022_12"
|
|
generated_dict = self.ema_declaration_2022_12._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2023_01(self):
|
|
identifier = "ema_declaration_2023_01"
|
|
generated_dict = self.ema_declaration_2023_01._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_ema_declaration_2023_02(self):
|
|
identifier = "ema_declaration_2023_02"
|
|
generated_dict = self.ema_declaration_2023_02._get_declaration()
|
|
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2021_11(self):
|
|
identifier = "statistic_declaration_2021_11"
|
|
generated_dict = self.statistic_declaration_2021_11._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2021_12(self):
|
|
identifier = "statistic_declaration_2021_12"
|
|
generated_dict = self.statistic_declaration_2021_12._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_01(self):
|
|
identifier = "statistic_declaration_2022_01"
|
|
generated_dict = self.statistic_declaration_2022_01._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_02(self):
|
|
identifier = "statistic_declaration_2022_02"
|
|
generated_dict = self.statistic_declaration_2022_02._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_03(self):
|
|
identifier = "statistic_declaration_2022_03"
|
|
generated_dict = self.statistic_declaration_2022_03._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_04(self):
|
|
identifier = "statistic_declaration_2022_04"
|
|
generated_dict = self.statistic_declaration_2022_04._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_05(self):
|
|
identifier = "statistic_declaration_2022_05"
|
|
generated_dict = self.statistic_declaration_2022_05._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_06(self):
|
|
identifier = "statistic_declaration_2022_06"
|
|
generated_dict = self.statistic_declaration_2022_06._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_07(self):
|
|
identifier = "statistic_declaration_2022_07"
|
|
generated_dict = self.statistic_declaration_2022_07._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_08(self):
|
|
identifier = "statistic_declaration_2022_08"
|
|
generated_dict = self.statistic_declaration_2022_08._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_09(self):
|
|
identifier = "statistic_declaration_2022_09"
|
|
generated_dict = self.statistic_declaration_2022_09._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_10(self):
|
|
identifier = "statistic_declaration_2022_10"
|
|
generated_dict = self.statistic_declaration_2022_10._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_11(self):
|
|
identifier = "statistic_declaration_2022_11"
|
|
generated_dict = self.statistic_declaration_2022_11._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2022_12(self):
|
|
identifier = "statistic_declaration_2022_12"
|
|
generated_dict = self.statistic_declaration_2022_12._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2023_01(self):
|
|
identifier = "statistic_declaration_2023_01"
|
|
generated_dict = self.statistic_declaration_2023_01._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_statistic_declaration_2023_02(self):
|
|
identifier = "statistic_declaration_2023_02"
|
|
generated_dict = self.statistic_declaration_2023_02._get_declaration()
|
|
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2021_11(self):
|
|
identifier = "is_declaration_2021_11"
|
|
generated_dict = self.is_declaration_2021_11._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2021_12(self):
|
|
identifier = "is_declaration_2021_12"
|
|
generated_dict = self.is_declaration_2021_12._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_01(self):
|
|
identifier = "is_declaration_2022_01"
|
|
generated_dict = self.is_declaration_2022_01._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_02(self):
|
|
identifier = "is_declaration_2022_02"
|
|
generated_dict = self.is_declaration_2022_02._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_03(self):
|
|
identifier = "is_declaration_2022_03"
|
|
generated_dict = self.is_declaration_2022_03._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_04(self):
|
|
identifier = "is_declaration_2022_04"
|
|
generated_dict = self.is_declaration_2022_04._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_05(self):
|
|
identifier = "is_declaration_2022_05"
|
|
generated_dict = self.is_declaration_2022_05._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_06(self):
|
|
identifier = "is_declaration_2022_06"
|
|
generated_dict = self.is_declaration_2022_06._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_07(self):
|
|
identifier = "is_declaration_2022_07"
|
|
generated_dict = self.is_declaration_2022_07._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_08(self):
|
|
identifier = "is_declaration_2022_08"
|
|
generated_dict = self.is_declaration_2022_08._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_09(self):
|
|
identifier = "is_declaration_2022_09"
|
|
generated_dict = self.is_declaration_2022_09._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_10(self):
|
|
identifier = "is_declaration_2022_10"
|
|
generated_dict = self.is_declaration_2022_10._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_11(self):
|
|
identifier = "is_declaration_2022_11"
|
|
generated_dict = self.is_declaration_2022_11._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2022_12(self):
|
|
identifier = "is_declaration_2022_12"
|
|
generated_dict = self.is_declaration_2022_12._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2023_01(self):
|
|
identifier = "is_declaration_2023_01"
|
|
generated_dict = self.is_declaration_2023_01._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_is_declaration_2023_02(self):
|
|
identifier = "is_declaration_2023_02"
|
|
generated_dict = self.is_declaration_2023_02._get_declaration()
|
|
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_rectificate_2022_01(self):
|
|
identifier = "rectificate_2022_01"
|
|
generated_dict = self.rectificate_2022_01._get_declaration()
|
|
self._compare_with_truth_base("rectificate", identifier, generated_dict)
|
|
|
|
@freeze_time("2024-01-01")
|
|
def test_yearly_prospective_2023_01(self):
|
|
identifier = "yearly_prospective_2023_01"
|
|
generated_dict = self.yearly_prospective_2023_01._get_declaration()
|
|
self._compare_with_truth_base("yearly_prospective", identifier, generated_dict)
|
|
|
|
@freeze_time("2025-12-16")
|
|
def test_lpp_basis_report_with_employee_creation(self):
|
|
"""
|
|
Test employee creation for Swiss company while having duplicate LPP reports.
|
|
"""
|
|
swiss_company = self.env.company
|
|
lpp_report_1 = self.env['l10n.ch.lpp.basis.report'].create({
|
|
'year': datetime.now().year,
|
|
'month': str(datetime.now().month),
|
|
'company_id': swiss_company.id,
|
|
})
|
|
lpp_report_2 = lpp_report_1.copy()
|
|
employee = self.env['hr.employee'].create({
|
|
'name': 'Test Employee',
|
|
'company_id': swiss_company.id,
|
|
})
|
|
self.assertTrue(employee.exists())
|
|
self.assertEqual(employee.company_id, swiss_company)
|
|
self.assertEqual(lpp_report_1.year, 2025)
|
|
self.assertEqual(lpp_report_1.month, '12')
|
|
self.assertEqual(lpp_report_2.year, 2025)
|
|
self.assertEqual(lpp_report_2.month, '12')
|
|
|
|
@freeze_time("2023-01-01")
|
|
def test_is_declaration_perception_2022_06(self):
|
|
# Load perception commission IS Rates
|
|
rates_to_load = [
|
|
('BE_PEL', 'BE_PEL.json'),
|
|
('TI_PEL', 'TI_PEL.json'),
|
|
('VD_PEL', 'VD_PEL.json'),
|
|
]
|
|
for xml_id, file_name in rates_to_load:
|
|
rule_parameter = self.env['hr.rule.parameter'].create({
|
|
'name': f'CH Withholding Tax: {xml_id}',
|
|
'code': f'l10n_ch_withholding_tax_rates_{xml_id}',
|
|
'country_id': self.env.ref('base.ch').id,
|
|
})
|
|
self.env['hr.rule.parameter.value'].create({
|
|
'parameter_value': json.load(file_open(f'l10n_ch_hr_payroll/tests/data/is_rates/{file_name}')),
|
|
'rule_parameter_id': rule_parameter.id,
|
|
'date_from': date(2021, 1, 1),
|
|
})
|
|
|
|
identifier = "is_declaration_perception_2022_06"
|
|
self.is_declaration_2022_06.action_prepare_data()
|
|
generated_dict = self.is_declaration_2022_06._get_declaration()
|
|
self._compare_with_truth_base("is_declaration_perception", identifier, generated_dict)
|