Skip to content

Commit 9f01fa2

Browse files
committed
[T-8592][FIX] partner_address_hide_pdf_fields: fix test
1 parent fca5f08 commit 9f01fa2

3 files changed

Lines changed: 39 additions & 42 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from odoo import models
2+
3+
4+
class ResPartner(models.Model):
5+
_name = "res.partner"
6+
_inherit = "res.partner"
7+
_description = "Fake ResPartner for Testing"
8+
9+
def _hided_in_pdf_address_fields(self):
10+
return super()._hided_in_pdf_address_fields() + ["field_id", "field_name"]
11+
12+
# This FakeModel overrides `_prepare_display_address` to simulate
13+
# additional address fields (`field_id`, `field_name`) being included
14+
# and hidden depending on the `inside_pdf` context.
15+
def _prepare_display_address(self, without_company=False):
16+
address_format, args = super()._prepare_display_address(without_company)
17+
args.update({"field_id": "123", "field_name": "Field Name"})
18+
if self._display_address_inside_pdf():
19+
args.update({key: "" for key in self._hided_in_pdf_address_fields()})
20+
return address_format, args
Lines changed: 18 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,39 @@
1+
from odoo_test_helper import FakeModelLoader
2+
13
from odoo.tests.common import TransactionCase
24

35

46
class TestPartnerAddressHidePdfFields(TransactionCase):
57
@classmethod
68
def setUpClass(cls):
79
super().setUpClass()
10+
cls.loader = FakeModelLoader(cls.env, cls.__module__)
11+
cls.loader.backup_registry()
12+
from .fake_models import ResPartner
13+
14+
cls.loader.update_registry((ResPartner,))
15+
816
cls.partner = cls.env["res.partner"].create(
917
{
10-
"name": "Test Partner",
11-
"country_id": cls.env.ref("base.es").id,
12-
"city": "Test city",
18+
"name": "Partner Test",
19+
"city": "Test City",
1320
"zip": "12345",
14-
"street": "Test street",
21+
"street": "Test Street",
1522
}
1623
)
1724

18-
cls._original_hided = cls.env[
19-
"res.partner"
20-
].__class__._hided_in_pdf_address_fields
21-
22-
def fake_hided_in_pdf_address_fields(cls):
23-
return ["field_id", "field_name"]
24-
25-
cls.env["res.partner"].__class__._hided_in_pdf_address_fields = classmethod(
26-
fake_hided_in_pdf_address_fields
27-
)
28-
29-
cls._original_prepare = cls.env[
30-
"res.partner"
31-
].__class__._prepare_display_address
32-
33-
def test_prepare_display_address(self, without_company=False):
34-
address_format, args = cls._original_prepare(self, without_company)
35-
args.update({"field_id": "123", "field_name": "Name"})
36-
if self._display_address_inside_pdf():
37-
args.update({key: "" for key in self._hided_in_pdf_address_fields()})
38-
return address_format, args
39-
40-
cls.env[
41-
"res.partner"
42-
].__class__._prepare_display_address = test_prepare_display_address
43-
4425
@classmethod
4526
def tearDownClass(cls):
46-
cls.env[
47-
"res.partner"
48-
].__class__._hided_in_pdf_address_fields = cls._original_hided
49-
cls.env[
50-
"res.partner"
51-
].__class__._prepare_display_address = cls._original_prepare
27+
cls.loader.restore_registry()
5228
super().tearDownClass()
5329

5430
def test_fields_hidden_inside_pdf(self):
55-
partner_with_ctx = self.partner.with_context(inside_pdf=True)
56-
_, args = partner_with_ctx._prepare_display_address()
57-
self.assertEqual(args.get("field_id"), "")
58-
self.assertEqual(args.get("field_name"), "")
31+
partner_ctx = self.partner.with_context(inside_pdf=True)
32+
_, args = partner_ctx._prepare_display_address()
33+
self.assertEqual(args["field_id"], "")
34+
self.assertEqual(args["field_name"], "")
5935

6036
def test_fields_visible_outside_pdf(self):
6137
_, args = self.partner._prepare_display_address()
62-
self.assertEqual(args.get("field_id"), "123")
63-
self.assertEqual(args.get("field_name"), "Name")
38+
self.assertEqual(args["field_id"], "123")
39+
self.assertEqual(args["field_name"], "Field Name")

test-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
odoo_test_helper

0 commit comments

Comments
 (0)