odoo18/addons/account/tests/test_duplicate_res_partner_...

56 lines
2.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import Form
from odoo.addons.base.tests.common import SavepointCaseWithUserDemo
class TestDuplicatePartnerBank(SavepointCaseWithUserDemo):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.company_a = cls.env['res.company'].create({"name": "companyA"})
cls.user_a = cls.env['res.users'].with_company(cls.company_a).create({"name": "userA", "login": "test@test.com"})
cls.partner_a = cls.env['res.partner'].with_user(cls.user_a).create({"name": "PartnerA", "company_id": cls.company_a.id})
cls.partner_bank_a = cls.env['res.partner.bank'].with_user(cls.user_a).create({"acc_number": "12345", "partner_id": cls.partner_a.id})
cls.company_b = cls.env['res.company'].create({"name": "companyB"})
cls.user_b = cls.env['res.users'].with_company(cls.company_b).create({"name": "userB", "login": "test1@test.com"})
cls.partner_b = cls.env['res.partner'].with_user(cls.user_b).create({"name": "PartnerB", "company_id": cls.company_b.id})
cls.partner_bank_b = cls.env['res.partner.bank'].with_user(cls.user_b).create({"acc_number": "12345", "partner_id": cls.partner_b.id})
def test_duplicate_acc_number_different_company(self):
self.assertFalse(self.partner_bank_b.duplicate_bank_partner_ids)
def test_duplicate_acc_number_no_company(self):
self.partner_a.company_id = False
self.partner_bank_a.company_id = False
self.partner_b.company_id = False
self.partner_bank_b.company_id = False
self.assertTrue(self.partner_bank_a.duplicate_bank_partner_ids, self.partner_a)
def test_duplicate_acc_number_b_company(self):
self.partner_a.company_id = False
self.partner_bank_a.company_id = False
self.assertTrue(self.partner_bank_b.duplicate_bank_partner_ids, self.partner_a)
def test_remove_bank_account_from_partner(self):
bank = self.env['res.bank'].create({'name': 'SBI Bank'})
self.partner_bank_a.write({
'acc_number': '99999',
'bank_id': bank.id,
})
self.assertEqual(len(self.partner_a.bank_ids), 1)
with Form(self.partner_a) as partner_form:
partner_form.bank_ids.remove(0)
self.assertEqual(len(self.partner_a.bank_ids), 0)
def test_duplicate_acc_number_inactive_bank_account(self):
self.partner_bank_b.active = False
self.assertFalse(self.partner_bank_a.duplicate_bank_partner_ids)