Files
Odoo-18.0-20251222/account_fiscal_year_auto_create/tests/test_module.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

50 lines
2.0 KiB
Python
Executable File

# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import date, datetime
from odoo.addons.base.tests.common import BaseCommon
class TestFiscalYear(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.AccountFiscalYear = cls.env["account.fiscal.year"]
cls.company = cls.env["res.company"].create(
{
"name": "Demo Company (account_fiscal_year_auto_create)",
}
)
cls.last_year = datetime.now().year - 1
cls.last_fiscal_year = cls.AccountFiscalYear.create(
{
"name": f"FY {cls.last_year}",
"date_from": date(cls.last_year, 1, 1),
"date_to": date(cls.last_year, 12, 31),
"company_id": cls.company.id,
}
)
def test_cron_auto_create(self):
"""It should create new fiscal year via cron and not duplicate"""
# Step 1: Run cron -> should create one new fiscal year
old_fiscal_year_ids = self.AccountFiscalYear.search([]).ids
self.AccountFiscalYear.cron_auto_create()
new_fy = self.AccountFiscalYear.search([("id", "not in", old_fiscal_year_ids)])
self.assertEqual(len(new_fy), 1, "A new fiscal year should be created.")
expected_year = self.last_year + 1
self.assertEqual(new_fy.name, f"FY {expected_year}")
self.assertEqual(new_fy.date_from, date(expected_year, 1, 1))
self.assertEqual(new_fy.date_to, date(expected_year, 12, 31))
# Step 2: Run cron again -> should NOT create duplicate fiscal year
new_ids = self.AccountFiscalYear.search([]).ids
self.AccountFiscalYear.cron_auto_create()
newer_fy = self.AccountFiscalYear.search([("id", "not in", new_ids)])
self.assertFalse(newer_fy, "No new fiscal year should be created again.")