Odoo18-Base/odoo/addons/base/tests/test_format_address_mixin.py

64 lines
2.3 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
from odoo.addons.base.tests.test_views import ViewCase
class FormatAddressCase(ViewCase):
def assertAddressView(self, model):
# pe_partner_address_form
address_arch = """<form><div class="o_address_format"><field name="city"/></div></form>"""
address_view = self.View.create({
'name': 'view',
'model': model,
'arch': address_arch,
'priority': 900,
})
# view can be created without address_view
form_arch = """<form><field name="id"/><div class="o_address_format"><field name="street"/></div></form>"""
view = self.View.create({
'name': 'view',
'model': model,
'arch': form_arch,
})
# default view, no address_view defined
arch = self.env[model].get_view(view.id)['arch']
self.assertIn('"street"', arch)
self.assertNotIn('"city"', arch)
# custom view, address_view defined
self.env.company.country_id.address_view_id = address_view
arch = self.env[model].get_view(view.id)['arch']
self.assertNotIn('"street"', arch)
self.assertIn('"city"', arch)
# weird result: <form> inside a <form>
self.assertRegex(arch, r"<form>.*<form>.*</form>.*</form>")
# no_address_format context
arch = self.env[model].with_context(no_address_format=True).get_view(view.id)['arch']
self.assertIn('"street"', arch)
self.assertNotIn('"city"', arch)
belgium = self.env.ref('base.be')
france = self.env.ref('base.fr')
belgium.address_view_id = None
france.address_view_id = address_view
company_a, company_b = self.env['res.company'].create([
{'name': 'foo', 'country_id': belgium.id},
{'name': 'bar', 'country_id': france.id},
])
arch = self.env[model].with_company(company_a).get_view(view.id)['arch']
self.assertIn('"street"', arch)
self.assertNotIn('"city"', arch)
arch = self.env[model].with_company(company_b).get_view(view.id)['arch']
self.assertNotIn('"street"', arch)
self.assertIn('"city"', arch)
class TestPartnerFormatAddress(FormatAddressCase):
def test_address_view(self):
self.env.company.country_id = self.env.ref('base.us')
self.assertAddressView('res.partner')