[IMP] account_payment_sale: Add tests to increase coverage

This commit is contained in:
mpanarin
2018-01-25 19:04:46 +02:00
committed by Atchuthan Ubendran
parent 42d380af16
commit 2a8c6c5a69
5 changed files with 107 additions and 1 deletions

View File

@@ -1,2 +1,3 @@
from . import models
from . import wizard
from . import tests

View File

@@ -4,7 +4,7 @@
{
'name': 'Account Payment Sale',
'version': '11.0.1.0.0',
'version': '11.0.1.0.1',
'category': 'Banking addons',
'license': 'AGPL-3',
'summary': "Adds payment mode on sale orders",

View File

@@ -0,0 +1,2 @@
from . import common
from . import test_sale_order

View File

@@ -0,0 +1,42 @@
# Copyright 2018 Camptocamp
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import SavepointCase
class CommonTestCase(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.bank = cls.env["res.partner.bank"].create({
'acc_number': 'test',
})
cls.journal = cls.env["account.journal"].create({
'name': 'test journal',
'code': '123',
'type': 'bank',
'company_id': cls.env.ref("base.main_company").id,
'bank_account_id': cls.bank.id,
})
cls.payment_mode = cls.env["account.payment.mode"].create({
'name': 'test_mode',
'active': True,
'payment_method_id': cls.env.ref(
"account.account_payment_method_manual_in"
).id,
'bank_account_link': 'fixed',
'fixed_journal_id': cls.journal.id,
})
cls.base_partner = cls.env["res.partner"].create({
'name': 'Dummy',
'email': 'dummy@example.com',
'customer_payment_mode_id': cls.payment_mode.id,
})
cls.products = {
'prod_order': cls.env.ref('product.product_order_01'),
'prod_del': cls.env.ref('product.product_delivery_01'),
'serv_order': cls.env.ref('product.service_order_01'),
'serv_del': cls.env.ref('product.service_delivery'),
}

View File

@@ -0,0 +1,61 @@
# Copyright 2018 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from .common import CommonTestCase
class TestSaleOrder(CommonTestCase):
def create_sale_order(self):
so_lines = [(0, 0, {
'name': p.name,
'product_id': p.id,
'product_uom_qty': 2,
'product_uom': p.uom_id.id,
'price_unit': p.list_price,
}) for (_, p) in self.products.items()]
so = self.env['sale.order'].create({
'partner_id': self.base_partner.id,
'partner_invoice_id': self.base_partner.id,
'partner_shipping_id': self.base_partner.id,
'order_line': so_lines,
'pricelist_id': self.env.ref('product.list0').id,
})
self.assertFalse(so.payment_mode_id)
so.onchange_partner_id()
self.assertEqual(
so.payment_mode_id,
self.base_partner.customer_payment_mode_id
)
return so
def test_sale_to_invoice_payment_mode(self):
order = self.create_sale_order()
context = {
"active_model": 'sale.order',
"active_ids": [order.id],
"active_id": order.id,
}
order.with_context(context).action_confirm()
payment = self.env['sale.advance.payment.inv'].create({
'advance_payment_method': 'fixed',
'amount': 5,
'product_id': self.env.ref('sale.advance_product_0').id,
})
vals = order._get_payment_mode_vals({})
expected_vals = {
'payment_mode_id': self.payment_mode.id,
'partner_bank_id': self.bank.id,
}
self.assertEqual(vals, expected_vals)
payment.with_context(context).create_invoices()
invoice = order.invoice_ids
self.assertEqual(len(invoice), 1)
self.assertEqual(
invoice.payment_mode_id.id,
expected_vals["payment_mode_id"]
)
self.assertEqual(
invoice.partner_bank_id.id,
expected_vals["partner_bank_id"]
)