[FIX+IMP] account_tax_balance:
* Tests * PEP8 * Use invoice._convert_to_write(invoice._cache). This way, the onchange will be inheritable and will add here also the added values * better get_context_values * unify method compute_balance * open move lines linked to balance
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
#Accounting tests extending AccountingTestCase
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Lorenzo Battistini - Agile Business Group
|
||||
# © 2016 Giovanni Capalbo
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import test_account_tax_balance
|
||||
from . import test_account_tax_balance
|
||||
|
||||
@@ -1,51 +1,54 @@
|
||||
#from openerp.addons.account.tests.account_test_users import AccountTestUsers
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Lorenzo Battistini - Agile Business Group
|
||||
# © 2016 Giovanni Capalbo <giovanni@therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from openerp.tests.common import TransactionCase
|
||||
from openerp.tools import float_compare
|
||||
|
||||
from datetime import datetime
|
||||
from dateutil.rrule import MONTHLY
|
||||
|
||||
|
||||
class TestAccountTaxBalance(TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestAccountTaxBalance, self).setUp()
|
||||
self.fixed_tax = self.tax_model.create({
|
||||
'name': "Fixed tax",
|
||||
'amount_type': 'fixed',
|
||||
'amount': 10.0,
|
||||
'sequence': 1,
|
||||
})
|
||||
self.fixed_tax_bis = self.tax_model.create({
|
||||
'name': "Fixed tax bis",
|
||||
'amount_type': 'fixed',
|
||||
'amount': 15,
|
||||
'sequence': 2,
|
||||
})
|
||||
self.percent_tax = self.tax_model.create({
|
||||
'name': "Percent tax",
|
||||
'amount_type': 'percent',
|
||||
'amount': 10.0,
|
||||
'sequence': 3,
|
||||
})
|
||||
self.bank_journal = self.env['account.journal'].search([('type', '=', 'bank'), ('company_id', '=', self.account_manager.company_id.id)])[0]
|
||||
self.bank_account = self.bank_journal.default_debit_account_id
|
||||
self.expense_account = self.env['account.account'].search([('user_type_id.type', '=', 'payable')], limit=1) #Should be done by onchange later
|
||||
|
||||
def setUp(self):
|
||||
super(TestAccountTaxBalance, self).setUp()
|
||||
self.range_type = self.env['date.range.type'].create(
|
||||
{'name': 'Fiscal year',
|
||||
'company_id': False,
|
||||
'allow_overlap': False})
|
||||
self.range_generator = self.env['date.range.generator']
|
||||
self.current_year = datetime.now().year
|
||||
self.current_month = datetime.now().month
|
||||
range_generator = self.range_generator.create({
|
||||
'date_start': '%s-01-01' % self.current_year,
|
||||
'name_prefix': '%s-' % self.current_year,
|
||||
'type_id': self.range_type.id,
|
||||
'duration_count': 1,
|
||||
'unit_of_time': MONTHLY,
|
||||
'count': 12})
|
||||
range_generator.action_apply()
|
||||
self.range = self.env['date.range']
|
||||
|
||||
def test_tax_balance(self):
|
||||
company_id = self.env['res.users'].browse(self.env.uid).company_id.id
|
||||
tax_account_id = self.env['account.account'].search(
|
||||
[('name', '=', 'Tax Paid')], limit=1).id
|
||||
tax = self.env['account.tax'].create({
|
||||
'name': 'Tax 10.0',
|
||||
'amount': 10.0,
|
||||
'amount_type': 'fixed',
|
||||
'account_id': tax_account_id,
|
||||
})
|
||||
analytic_account = self.env['account.analytic.account'].create({
|
||||
'name': 'test account',
|
||||
})
|
||||
invoice_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1).id
|
||||
invoice_line_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1).id
|
||||
invoice_account_id = self.env['account.account'].search(
|
||||
[('user_type_id', '=', self.env.ref(
|
||||
'account.data_account_type_receivable'
|
||||
).id)], limit=1).id
|
||||
invoice_line_account_id = self.env['account.account'].search(
|
||||
[('user_type_id', '=', self.env.ref(
|
||||
'account.data_account_type_expenses').id)], limit=1).id
|
||||
invoice = self.env['account.invoice'].create({
|
||||
'partner_id': self.env.ref('base.res_partner_2').id,
|
||||
'account_id': invoice_account,
|
||||
'type': 'in_invoice',
|
||||
'account_id': invoice_account_id,
|
||||
'type': 'out_invoice',
|
||||
})
|
||||
|
||||
self.env['account.invoice.line'].create({
|
||||
@@ -54,19 +57,56 @@ class TestAccountTaxBalance(TransactionCase):
|
||||
'price_unit': 100.0,
|
||||
'invoice_id': invoice.id,
|
||||
'name': 'product that cost 100',
|
||||
'account_id': invoice_line_account,
|
||||
'account_id': invoice_line_account_id,
|
||||
'invoice_line_tax_ids': [(6, 0, [tax.id])],
|
||||
'account_analytic_id': analytic_account.id,
|
||||
})
|
||||
invoice._onchange_invoice_line_ids()
|
||||
invoice._convert_to_write(invoice._cache)
|
||||
self.assertEqual(invoice.state, 'draft')
|
||||
|
||||
# : check that Initially supplier bill state is "Draft"
|
||||
self.assertTrue((invoice.state == 'draft'), "Initially vendor bill state is Draft")
|
||||
|
||||
#change the state of invoice to open by clicking Validate button
|
||||
# change the state of invoice to open by clicking Validate button
|
||||
invoice.signal_workflow('invoice_open')
|
||||
|
||||
|
||||
self.assertEquals(tax.base_balance, 100)
|
||||
self.assertEquals(tax.balance, 10)
|
||||
|
||||
|
||||
# testing wizard
|
||||
current_range = self.range.search([
|
||||
('date_start', '=', '%s-%s-01' % (
|
||||
self.current_year, self.current_month))
|
||||
])
|
||||
wizard = self.env['wizard.open.tax.balances'].new({})
|
||||
self.assertFalse(wizard.from_date)
|
||||
self.assertFalse(wizard.to_date)
|
||||
wizard = self.env['wizard.open.tax.balances'].new({
|
||||
'date_range_id': current_range[0].id,
|
||||
})
|
||||
wizard.onchange_date_range_id()
|
||||
wizard._convert_to_write(wizard._cache)
|
||||
action = wizard.open_taxes()
|
||||
self.assertEqual(
|
||||
action['context']['from_date'], current_range[0].date_start)
|
||||
self.assertEqual(
|
||||
action['context']['to_date'], current_range[0].date_end)
|
||||
self.assertEqual(
|
||||
action['xml_id'], 'account_tax_balance.action_tax_balances_tree')
|
||||
|
||||
# testing buttons
|
||||
tax_action = tax.view_tax_lines()
|
||||
base_action = tax.view_base_lines()
|
||||
self.assertTrue(
|
||||
tax_action['domain'][0][2][0] in
|
||||
[l.id for l in invoice.move_id.line_ids])
|
||||
self.assertEqual(
|
||||
tax_action['xml_id'], 'account.action_account_moves_all_tree')
|
||||
self.assertTrue(
|
||||
base_action['domain'][0][2][0] in
|
||||
[l.id for l in invoice.move_id.line_ids])
|
||||
self.assertEqual(
|
||||
base_action['xml_id'], 'account.action_account_moves_all_tree')
|
||||
|
||||
# test specific method
|
||||
state_list = tax.get_target_state_list(target_move='all')
|
||||
self.assertEqual(state_list, ['posted', 'draft'])
|
||||
state_list = tax.get_target_state_list(target_move='whatever')
|
||||
self.assertEqual(state_list, [])
|
||||
|
||||
Reference in New Issue
Block a user