mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[IMP] account_banking_mandate: test performance improvement
- Include context keys for avoiding mail operations overhead.
This commit is contained in:
committed by
Sébastien Alix
parent
6165f87df2
commit
8a3b280057
@@ -8,6 +8,7 @@ from odoo.exceptions import UserError
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
from odoo.addons.account.models.account_payment_method import AccountPaymentMethod
|
||||
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
||||
|
||||
|
||||
class TestInvoiceMandate(TransactionCase):
|
||||
@@ -192,112 +193,105 @@ class TestInvoiceMandate(TransactionCase):
|
||||
with self.assertRaises(UserError):
|
||||
invoice.mandate_id = mandate_2
|
||||
|
||||
def _create_res_partner(self, name):
|
||||
return self.env["res.partner"].create({"name": name})
|
||||
@classmethod
|
||||
def _create_res_partner(cls, name):
|
||||
return cls.env["res.partner"].create({"name": name})
|
||||
|
||||
def _create_res_bank(self, name, bic, city, country):
|
||||
return self.env["res.bank"].create(
|
||||
@classmethod
|
||||
def _create_res_bank(cls, name, bic, city, country):
|
||||
return cls.env["res.bank"].create(
|
||||
{"name": name, "bic": bic, "city": city, "country": country.id}
|
||||
)
|
||||
|
||||
def setUp(self):
|
||||
res = super(TestInvoiceMandate, self).setUp()
|
||||
self.company = self.env.ref("base.main_company")
|
||||
|
||||
self.partner = self._create_res_partner("Peter with ACME Bank")
|
||||
self.acme_bank = self._create_res_bank(
|
||||
"ACME Bank", "GEBABEBB03B", "Charleroi", self.env.ref("base.be")
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
res = super().setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
||||
cls.company = cls.env.ref("base.main_company")
|
||||
cls.partner = cls._create_res_partner("Peter with ACME Bank")
|
||||
cls.acme_bank = cls._create_res_bank(
|
||||
"ACME Bank", "GEBABEBB03B", "Charleroi", cls.env.ref("base.be")
|
||||
)
|
||||
|
||||
bank_account = self.env["res.partner.bank"].create(
|
||||
bank_account = cls.env["res.partner.bank"].create(
|
||||
{
|
||||
"acc_number": "0023032234211123",
|
||||
"partner_id": self.partner.id,
|
||||
"bank_id": self.acme_bank.id,
|
||||
"company_id": self.company.id,
|
||||
"partner_id": cls.partner.id,
|
||||
"bank_id": cls.acme_bank.id,
|
||||
"company_id": cls.company.id,
|
||||
}
|
||||
)
|
||||
|
||||
self.company_2 = self.env["res.company"].create({"name": "Company 2"})
|
||||
|
||||
self.mandate = self.env["account.banking.mandate"].create(
|
||||
cls.company_2 = cls.env["res.company"].create({"name": "Company 2"})
|
||||
cls.mandate = cls.env["account.banking.mandate"].create(
|
||||
{
|
||||
"partner_bank_id": bank_account.id,
|
||||
"signature_date": "2015-01-01",
|
||||
"company_id": self.company.id,
|
||||
"company_id": cls.company.id,
|
||||
}
|
||||
)
|
||||
|
||||
self.mandate.validate()
|
||||
|
||||
self.mode_inbound_acme = self.env["account.payment.mode"].create(
|
||||
cls.mandate.validate()
|
||||
cls.mode_inbound_acme = cls.env["account.payment.mode"].create(
|
||||
{
|
||||
"name": "Inbound Credit ACME Bank",
|
||||
"company_id": self.company.id,
|
||||
"company_id": cls.company.id,
|
||||
"bank_account_link": "variable",
|
||||
"payment_method_id": self.env.ref(
|
||||
"payment_method_id": cls.env.ref(
|
||||
"account.account_payment_method_manual_in"
|
||||
).id,
|
||||
}
|
||||
)
|
||||
bank_journal = self.env["account.journal"].search(
|
||||
bank_journal = cls.env["account.journal"].search(
|
||||
[
|
||||
("type", "=", "bank"),
|
||||
("company_id", "=", self.company.id),
|
||||
("company_id", "=", cls.company.id),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
self.mode_inbound_acme.variable_journal_ids = bank_journal
|
||||
self.mode_inbound_acme.payment_method_id.mandate_required = True
|
||||
self.mode_inbound_acme.payment_order_ok = True
|
||||
|
||||
self.partner.customer_payment_mode_id = self.mode_inbound_acme
|
||||
|
||||
self.invoice_account = self.env["account.account"].search(
|
||||
cls.mode_inbound_acme.variable_journal_ids = bank_journal
|
||||
cls.mode_inbound_acme.payment_method_id.mandate_required = True
|
||||
cls.mode_inbound_acme.payment_order_ok = True
|
||||
cls.partner.customer_payment_mode_id = cls.mode_inbound_acme
|
||||
cls.invoice_account = cls.env["account.account"].search(
|
||||
[
|
||||
("account_type", "=", "asset_receivable"),
|
||||
("company_id", "=", self.company.id),
|
||||
("company_id", "=", cls.company.id),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
invoice_line_account = (
|
||||
self.env["account.account"]
|
||||
cls.env["account.account"]
|
||||
.search(
|
||||
[
|
||||
("account_type", "=", "expense"),
|
||||
("company_id", "=", self.company.id),
|
||||
("company_id", "=", cls.company.id),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
.id
|
||||
)
|
||||
|
||||
invoice_vals = [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"product_id": self.env.ref("product.product_product_4").id,
|
||||
"product_id": cls.env.ref("product.product_product_4").id,
|
||||
"quantity": 1.0,
|
||||
"account_id": invoice_line_account,
|
||||
"price_unit": 200.00,
|
||||
},
|
||||
)
|
||||
]
|
||||
|
||||
self.invoice = self.env["account.move"].create(
|
||||
cls.invoice = cls.env["account.move"].create(
|
||||
{
|
||||
"partner_id": self.partner.id,
|
||||
"partner_id": cls.partner.id,
|
||||
"move_type": "out_invoice",
|
||||
"company_id": self.company.id,
|
||||
"journal_id": self.env["account.journal"]
|
||||
"company_id": cls.company.id,
|
||||
"journal_id": cls.env["account.journal"]
|
||||
.search(
|
||||
[("type", "=", "sale"), ("company_id", "=", self.company.id)],
|
||||
[("type", "=", "sale"), ("company_id", "=", cls.company.id)],
|
||||
limit=1,
|
||||
)
|
||||
.id,
|
||||
"invoice_line_ids": invoice_vals,
|
||||
}
|
||||
)
|
||||
|
||||
return res
|
||||
|
||||
@@ -7,22 +7,27 @@ from odoo import fields
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
||||
|
||||
|
||||
class TestMandate(TransactionCase):
|
||||
def setUp(self):
|
||||
super(TestMandate, self).setUp()
|
||||
self.company = self.env.company
|
||||
self.company_2 = self.env["res.company"].create({"name": "company 2"})
|
||||
self.company_2.partner_id.company_id = self.company_2.id
|
||||
self.bank_account = self.env.ref("account_payment_mode.res_partner_12_iban")
|
||||
self.bank_account.partner_id.company_id = self.company.id
|
||||
self.mandate = self.env["account.banking.mandate"].create(
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
res = super(TestMandate, cls).setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
||||
cls.company = cls.env.ref("base.main_company")
|
||||
cls.company_2 = cls.env["res.company"].create({"name": "Company 2"})
|
||||
cls.company_2.partner_id.company_id = cls.company_2.id
|
||||
cls.bank_account = cls.env.ref("account_payment_mode.res_partner_12_iban")
|
||||
cls.bank_account.partner_id.company_id = cls.company.id
|
||||
cls.mandate = cls.env["account.banking.mandate"].create(
|
||||
{
|
||||
"partner_bank_id": self.bank_account.id,
|
||||
"partner_bank_id": cls.bank_account.id,
|
||||
"signature_date": "2015-01-01",
|
||||
"company_id": self.company.id,
|
||||
"company_id": cls.company.id,
|
||||
}
|
||||
)
|
||||
return res
|
||||
|
||||
def test_mandate_01(self):
|
||||
self.assertEqual(self.mandate.state, "draft")
|
||||
|
||||
@@ -18,8 +18,9 @@ class TestPaymentMode(TransactionCase):
|
||||
AccountPaymentMethod._get_payment_method_information
|
||||
)
|
||||
|
||||
def _get_payment_method_information(self):
|
||||
res = Method_get_payment_method_information(self)
|
||||
@classmethod
|
||||
def _get_payment_method_information(cls):
|
||||
res = Method_get_payment_method_information(cls)
|
||||
res["IN"] = {"mode": "multi", "domain": [("type", "=", "bank")]}
|
||||
res["IN2"] = {"mode": "multi", "domain": [("type", "=", "bank")]}
|
||||
res["electronic_out"] = {"mode": "multi", "domain": [("type", "=", "bank")]}
|
||||
|
||||
Reference in New Issue
Block a user