2
0
account-financial-tools/account_move_fiscal_year/tests/test_account_move_fiscal_year.py
Fekete Mihai 9610ef3bce
Migrate account_move_fiscal_year.
Remove store
2023-08-04 08:52:31 +02:00

133 lines
4.3 KiB
Python

# Copyright 2017 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.fields import Date
from odoo.tests.common import TransactionCase
class TestAccountMoveFiscalYear(TransactionCase):
def setUp(self):
super(TestAccountMoveFiscalYear, self).setUp()
self.AccountObj = self.env['account.account']
self.AccountJournalObj = self.env['account.journal']
self.AccountMoveObj = self.env['account.move']
self.DateRangeObj = self.env['date.range']
self.bank_journal = self.AccountJournalObj.search([
('type', '=', 'bank')
], limit=1)
self.account_type_recv = self.env.ref(
'account.data_account_type_receivable')
self.account_type_rev = self.env.ref(
'account.data_account_type_revenue')
self.account_recv = self.AccountObj.create({
'code': 'RECV_DR',
'name': "Receivable (test)",
'reconcile': True,
'user_type_id': self.account_type_recv.id,
})
self.account_sale = self.AccountObj.create({
'code': 'SALE_DR',
'name': "Receivable (sale)",
'reconcile': True,
'user_type_id': self.account_type_rev.id,
})
self.date_range_type_year = self.env.ref(
'account_fiscal_year.fiscalyear')
self.date_range_2017 = self.DateRangeObj.create({
'name': "2017",
'date_start': '2017-01-01',
'date_end': '2017-12-31',
'type_id': self.date_range_type_year.id,
})
self.date_range_2018 = self.DateRangeObj.create({
'name': "2018",
'date_start': '2018-01-01',
'date_end': '2018-12-31',
'type_id': self.date_range_type_year.id,
})
def create_account_move(self, date_str):
return self.AccountMoveObj.create({
'journal_id': self.bank_journal.id,
'date': date_str,
'line_ids': [
(0, 0, {
'name': "Debit",
'debit': 1000,
'account_id': self.account_recv.id,
}),
(0, 0, {
'name': "Credit",
'credit': 1000,
'account_id': self.account_sale.id,
}),
]
})
def test_01_account_move_date_range_fy_id_compute(self):
january_1st = Date.from_string('2017-01-01')
move = self.create_account_move(january_1st)
self.assertEquals(
move.date_range_fy_id, self.date_range_2017,
msg="Move period should be 2017")
self.assertTrue(all([
line.date_range_fy_id == self.date_range_2017
for line in move.line_ids
]), msg="All lines period should be 2017")
january_2019 = Date.from_string('2019-01-01')
move = self.create_account_move(january_2019)
self.assertFalse(
bool(move.date_range_fy_id),
msg="Move shouldn't have any date range")
def test_02_account_move_date_range_fy_id_search(self):
january_2017 = Date.from_string('2017-01-01')
january_2018 = Date.from_string('2018-01-01')
january_2019 = Date.from_string('2019-01-01')
move_2017 = self.create_account_move(january_2017)
move_2018 = self.create_account_move(january_2018)
move_2019 = self.create_account_move(january_2019)
moves = self.AccountMoveObj.search([
('date_range_fy_id', 'ilike', '2017'),
])
self.assertTrue(all([
move_2017 in moves,
move_2018 not in moves,
move_2019 not in moves,
]), msg="There should be only moves in 2017")
moves = self.AccountMoveObj.search([
('date_range_fy_id', '=', self.date_range_2017.id),
])
self.assertTrue(all([
move_2017 in moves,
move_2018 not in moves,
move_2019 not in moves,
]))
moves = self.AccountMoveObj.search([
('date_range_fy_id', 'in', (
self.date_range_2017.id,
self.date_range_2018.id
)),
])
self.assertTrue(all([
move_2017 in moves,
move_2018 in moves,
move_2019 not in moves,
]))