@ -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
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,13 +57,12 @@ 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 ,
} )
# : check that Initially supplier bill state is "Draft"
self . assertTrue ( ( invoice . state == ' draft ' ) , " Initially vendor bill state is Draft " )
invoice . _onchange_invoice_line_ids ( )
invoice . _convert_to_write ( invoice . _cache )
self . assertEqual ( invoice . state , ' draft ' )
# change the state of invoice to open by clicking Validate button
invoice . signal_workflow ( ' invoice_open ' )
@ -68,5 +70,43 @@ class TestAccountTaxBalance(TransactionCase):
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 , [ ] )