Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
49
account_fiscal_year_auto_create/tests/test_module.py
Executable file
49
account_fiscal_year_auto_create/tests/test_module.py
Executable file
@@ -0,0 +1,49 @@
|
||||
# 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.")
|
||||
Reference in New Issue
Block a user