From cb1c9a1ffa59cb9936665e16e6bc42974ec6c1f8 Mon Sep 17 00:00:00 2001 From: git_admin Date: Tue, 28 Apr 2026 07:33:39 +0000 Subject: [PATCH] Tower: upload at_accounting 18.0.1.7 (via marketplace) --- .../tests/test_account_fiscal_year.py | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 addons/at_accounting/tests/test_account_fiscal_year.py diff --git a/addons/at_accounting/tests/test_account_fiscal_year.py b/addons/at_accounting/tests/test_account_fiscal_year.py new file mode 100644 index 0000000..1fad047 --- /dev/null +++ b/addons/at_accounting/tests/test_account_fiscal_year.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests import tagged +from odoo import fields + + +@tagged('post_install', '-at_install') +class TestFiscalPosition(AccountTestInvoicingCommon): + + def check_compute_fiscal_year(self, company, date, expected_date_from, expected_date_to): + '''Compute the fiscal year at a certain date for the company passed as parameter. + Then, check if the result matches the 'expected_date_from'/'expected_date_to' dates. + + :param company: The company. + :param date: The date belonging to the fiscal year. + :param expected_date_from: The expected date_from after computation. + :param expected_date_to: The expected date_to after computation. + ''' + current_date = fields.Date.from_string(date) + res = company.compute_fiscalyear_dates(current_date) + self.assertEqual(res['date_from'], fields.Date.from_string(expected_date_from)) + self.assertEqual(res['date_to'], fields.Date.from_string(expected_date_to)) + + def test_default_fiscal_year(self): + '''Basic case with a fiscal year xxxx-01-01 - xxxx-12-31.''' + company = self.env.company + company.fiscalyear_last_day = 31 + company.fiscalyear_last_month = '12' + + self.check_compute_fiscal_year( + company, + '2017-12-31', + '2017-01-01', + '2017-12-31', + ) + + self.check_compute_fiscal_year( + company, + '2017-01-01', + '2017-01-01', + '2017-12-31', + ) + + def test_leap_fiscal_year_1(self): + '''Case with a leap year ending the 29 February.''' + company = self.env.company + company.fiscalyear_last_day = 29 + company.fiscalyear_last_month = '2' + + self.check_compute_fiscal_year( + company, + '2016-02-29', + '2015-03-01', + '2016-02-29', + ) + + self.check_compute_fiscal_year( + company, + '2015-03-01', + '2015-03-01', + '2016-02-29', + ) + + def test_leap_fiscal_year_2(self): + '''Case with a leap year ending the 28 February.''' + company = self.env.company + company.fiscalyear_last_day = 28 + company.fiscalyear_last_month = '2' + + self.check_compute_fiscal_year( + company, + '2016-02-29', + '2015-03-01', + '2016-02-29', + ) + + self.check_compute_fiscal_year( + company, + '2016-03-01', + '2016-03-01', + '2017-02-28', + ) + + def test_custom_fiscal_year(self): + '''Case with custom fiscal years.''' + company = self.env.company + company.fiscalyear_last_day = 31 + company.fiscalyear_last_month = '12' + + # Create custom fiscal year covering the 6 first months of 2017. + self.env['account.fiscal.year'].create({ + 'name': '6 month 2017', + 'date_from': '2017-01-01', + 'date_to': '2017-05-31', + 'company_id': company.id, + }) + + # Check before the custom fiscal year). + self.check_compute_fiscal_year( + company, + '2017-02-01', + '2017-01-01', + '2017-05-31', + ) + + # Check after the custom fiscal year. + self.check_compute_fiscal_year( + company, + '2017-11-01', + '2017-06-01', + '2017-12-31', + ) + + # Create custom fiscal year covering the 3 last months of 2017. + self.env['account.fiscal.year'].create({ + 'name': 'last 3 month 2017', + 'date_from': '2017-10-01', + 'date_to': '2017-12-31', + 'company_id': company.id, + }) + + # Check inside the custom fiscal years. + self.check_compute_fiscal_year( + company, + '2017-07-01', + '2017-06-01', + '2017-09-30', + )