You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

43 lines
1.8 KiB

# Copyright 2019 Tecnativa - Vicent Cubells
# Copyright 2019 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.addons.contract.tests.test_contract import TestContractBase
class TestContractPriceRevision(TestContractBase):
def execute_wizard(self):
wizard = self.env['contract.price.revision.wizard'].create({
'date_start': '2018-02-15',
'variation_percent': 100.0,
})
wizard.with_context(
{'active_ids': [self.contract.id]}).action_apply()
def test_contract_price_revision_wizard(self):
self.acct_line.copy({'automatic_price': True})
self.assertEqual(len(self.contract.contract_line_ids.ids), 2)
self.execute_wizard()
self.assertEqual(len(self.contract.contract_line_ids.ids), 3)
lines = self.contract.contract_line_ids.filtered(
lambda x: x.price_unit == 200.0)
self.assertEqual(len(lines), 1)
def test_contract_price_revision_invoicing(self):
self.acct_line.copy({'automatic_price': True})
self.execute_wizard()
invoice = self.contract.recurring_create_invoice()
invoices = self.env['account.invoice'].search([
('invoice_line_ids.contract_line_id', 'in',
self.contract.contract_line_ids.ids)])
self.assertEqual(len(invoices), 1)
lines = invoice.invoice_line_ids
self.assertEqual(len(lines), 2)
lines = lines.filtered(lambda x: x.price_unit == 100.0)
self.assertEqual(len(lines), 1)
invoice = self.contract.recurring_create_invoice()
lines = invoice.invoice_line_ids
self.assertEqual(len(lines), 2)
lines = lines.filtered(lambda x: x.price_unit == 200.0)
self.assertEqual(len(lines), 1)