addons portados en el repo de ecocentral
This commit is contained in:
parent
f2194c5367
commit
65818b0155
72 changed files with 2474 additions and 3 deletions
3
l10n_es_partner_ccpae/tests/__init__.py
Normal file
3
l10n_es_partner_ccpae/tests/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import test_res_partner_ccpae
|
||||
67
l10n_es_partner_ccpae/tests/test_res_partner_ccpae.py
Normal file
67
l10n_es_partner_ccpae/tests/test_res_partner_ccpae.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# Copyright 2026 Ecocentral, Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo.tests.common import TransactionCase
|
||||
from odoo.tests.common import tagged
|
||||
|
||||
from odoo.addons.l10n_es_partner_ccpae.models.res_partner import DEFAULT_CCPAE_ORGANISMO
|
||||
|
||||
|
||||
@tagged("post_install", "-at_install")
|
||||
class TestResPartnerCcpae(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.partner = cls.env["res.partner"].create(
|
||||
{
|
||||
"name": "Productor Ecològic Test",
|
||||
"is_company": True,
|
||||
}
|
||||
)
|
||||
# `create` crida `_track_discard()`, que apunta `None` com a valors
|
||||
# inicials del registre per no traçar la pròpia creació. Mentre aquest
|
||||
# `None` hi sigui, cap `write` posterior deixa rastre. Buidant el
|
||||
# precommit aquí es descarta i els tests ja poden traçar.
|
||||
cls._flush_tracking(cls.env)
|
||||
|
||||
@staticmethod
|
||||
def _flush_tracking(env):
|
||||
env.flush_all()
|
||||
env.cr.precommit.run()
|
||||
|
||||
def _tracked_fields(self):
|
||||
"""Camps amb rastre al xatter del contacte, després d'un `write`.
|
||||
|
||||
`mail.thread.write()` no crea el `mail.message` de seguiment al moment:
|
||||
el deixa encuat com a callback de precommit (és el que desencalla
|
||||
`MailCommon.flush_tracking` del core). I un cop creat cal invalidar el
|
||||
contacte, perquè `message_ids` ja s'havia llegit i el one2many es queda
|
||||
amb el valor antic a la memòria cau.
|
||||
"""
|
||||
self._flush_tracking(self.env)
|
||||
self.partner.invalidate_recordset()
|
||||
return self.partner.message_ids.tracking_value_ids.mapped("field_id.name")
|
||||
|
||||
def test_organismo_default(self):
|
||||
"""Un contacte nou porta el codi del CCPAE per defecte."""
|
||||
self.assertEqual(self.partner.ccpae_organismo, DEFAULT_CCPAE_ORGANISMO)
|
||||
self.assertFalse(self.partner.ccpae_operador)
|
||||
|
||||
def test_campos_con_seguimiento(self):
|
||||
"""Escriure als camps CCPAE deixa rastre al xatter."""
|
||||
self.partner.write({"ccpae_operador": "CT-12345"})
|
||||
self.assertIn(
|
||||
"ccpae_operador",
|
||||
self._tracked_fields(),
|
||||
"El canvi de ccpae_operador ha de quedar registrat al xatter",
|
||||
)
|
||||
|
||||
self.partner.write({"ccpae_organismo": "ES-ECO-020-CT"})
|
||||
self.assertIn("ccpae_organismo", self._tracked_fields())
|
||||
|
||||
def test_vista_heredada_valida(self):
|
||||
"""La vista heretada s'ancora bé al formulari de `base` de la 18.0."""
|
||||
view = self.env.ref("l10n_es_partner_ccpae.res_partner_view_form_ccpae")
|
||||
arch = self.env["res.partner"].get_view(view.id, "form")["arch"]
|
||||
self.assertIn("ccpae_operador", arch)
|
||||
self.assertIn("ccpae_organismo", arch)
|
||||
Loading…
Add table
Add a link
Reference in a new issue