Files
suite/hr_expense_change_analytic/tests/test_expense_change.py

58 lines
2.5 KiB
Python

from odoo.addons.hr_expense.tests.common import TestExpenseCommon
from odoo.tests import tagged
from odoo import fields
@tagged('-at_install', 'post_install')
class TestWizard(TestExpenseCommon):
def test_expense_change_analytic(self):
expense_sheet = self.env['hr.expense.sheet'].create({
'name': 'First Expense for employee',
'employee_id': self.expense_employee.id,
'journal_id': self.company_data['default_journal_purchase'].id,
'accounting_date': '2017-01-01',
'expense_line_ids': [
(0, 0, {
'name': 'expense_1',
'date': '2016-01-01',
'product_id': self.product_a.id,
'unit_amount': 1000.0,
'tax_ids': [(6, 0, self.company_data['default_tax_purchase'].ids)],
'analytic_account_id': False,
'employee_id': self.expense_employee.id,
}),
(0, 0, {
'name': 'expense_2',
'date': '2016-01-01',
'product_id': self.product_a.id,
'unit_amount': 500.0,
'tax_ids': [(6, 0, self.company_data['default_tax_purchase'].ids)],
'analytic_account_id': False,
'employee_id': self.expense_employee.id,
}),
],
})
expense_sheet.action_submit_sheet()
expense_sheet.approve_expense_sheets()
expense_sheet.action_sheet_move_create()
# Tests Adding an Analytic Account
self.assertFalse(any(expense_sheet.expense_line_ids.mapped('analytic_account_id')))
ctx = {'active_model': 'hr.expense', 'active_ids': [expense_sheet.expense_line_ids[0].id]}
change = self.env['hr.expense.change'].sudo().with_context(ctx).create({})
change.analytic_account_id = self.analytic_account_1
change.affect_change()
self.assertEqual(expense_sheet.expense_line_ids.mapped('analytic_account_id'), self.analytic_account_1)
# Tests Changing
change.analytic_account_id = self.analytic_account_2
change.affect_change()
self.assertEqual(expense_sheet.expense_line_ids.mapped('analytic_account_id'), self.analytic_account_2)
# Tests Removing
change.analytic_account_id = False
change.affect_change()
self.assertFalse(any(expense_sheet.expense_line_ids.mapped('analytic_account_id')))