2
0
account-financial-tools/account_fiscal_year/tests/test_account_fiscal_year.py

133 lines
4.0 KiB
Python
Raw Normal View History

from odoo import fields
2022-03-07 17:09:58 +01:00
from odoo.tests import common
2022-03-07 17:09:58 +01:00
class TestFiscalPosition(common.TransactionCase):
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.ref("base.main_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.ref("base.main_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.ref("base.main_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.ref("base.main_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",
)