67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.digest.tests.common import TestDigestCommon
|
|
from odoo.tools import mute_logger
|
|
from odoo.tests import tagged
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestAccountDigest(TestDigestCommon):
|
|
|
|
@classmethod
|
|
@mute_logger('odoo.models.unlink')
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
account1 = cls.env['account.account'].search([('internal_group', '=', 'income'), ('company_id', '=', cls.company_1.id)], limit=1)
|
|
account2 = cls.env['account.account'].search([('internal_group', '=', 'expense'), ('company_id', '=', cls.company_1.id)], limit=1)
|
|
cls.env['account.journal'].with_company(cls.company_2).create({
|
|
'name': 'Test Journal',
|
|
'code': 'code',
|
|
'type': 'general',
|
|
})
|
|
|
|
comp2_account, comp2_account2 = cls.env['account.account'].create([{
|
|
'name': 'Account 1 Company 2',
|
|
'account_type': 'expense_depreciation',
|
|
'company_id': cls.company_2.id,
|
|
'code': 'aaaaaa',
|
|
}, {
|
|
'name': 'Account 2 Company 2',
|
|
'account_type': 'income_other',
|
|
'company_id': cls.company_2.id,
|
|
'code': 'bbbbbb',
|
|
}])
|
|
|
|
cls.env['account.move'].search([]).state = 'draft'
|
|
|
|
moves = cls.env['account.move'].create({
|
|
'line_ids': [
|
|
(0, 0, {'debit': 5, 'credit': 0, 'account_id': account1.id}),
|
|
(0, 0, {'debit': 0, 'credit': 5, 'account_id': account2.id}),
|
|
(0, 0, {'debit': 8, 'credit': 0, 'account_id': account1.id}),
|
|
(0, 0, {'debit': 0, 'credit': 8, 'account_id': account2.id}),
|
|
],
|
|
})
|
|
|
|
moves |= cls.env['account.move'].with_company(cls.company_2).create({
|
|
'line_ids': [
|
|
(0, 0, {'debit': 0, 'credit': 2, 'account_id': comp2_account.id}),
|
|
(0, 0, {'debit': 2, 'credit': 0, 'account_id': comp2_account2.id}),
|
|
],
|
|
})
|
|
|
|
moves.state = 'posted'
|
|
|
|
def test_kpi_account_total_revenue_value(self):
|
|
self.assertEqual(int(self.digest_1.kpi_account_total_revenue_value), -13)
|
|
self.assertEqual(int(self.digest_2.kpi_account_total_revenue_value), -2)
|
|
self.assertEqual(int(self.digest_3.kpi_account_total_revenue_value), -13)
|
|
|
|
self.digest_3.invalidate_recordset()
|
|
self.assertEqual(
|
|
int(self.digest_3.with_company(self.company_2).kpi_account_total_revenue_value),
|
|
-2,
|
|
msg='When no company is set, the KPI must be computed based on the current company',
|
|
)
|