|
| 1 | +from odoo_test_helper import FakeModelLoader |
| 2 | + |
1 | 3 | from odoo.tests.common import TransactionCase |
2 | 4 |
|
3 | 5 |
|
4 | 6 | class TestPartnerAddressHidePdfFields(TransactionCase): |
5 | 7 | @classmethod |
6 | 8 | def setUpClass(cls): |
7 | 9 | 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 | + |
8 | 16 | cls.partner = cls.env["res.partner"].create( |
9 | 17 | { |
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", |
13 | 20 | "zip": "12345", |
14 | | - "street": "Test street", |
| 21 | + "street": "Test Street", |
15 | 22 | } |
16 | 23 | ) |
17 | 24 |
|
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 | | - |
44 | 25 | @classmethod |
45 | 26 | 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() |
52 | 28 | super().tearDownClass() |
53 | 29 |
|
54 | 30 | 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"], "") |
59 | 35 |
|
60 | 36 | def test_fields_visible_outside_pdf(self): |
61 | 37 | _, 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") |
0 commit comments