Skip to content

Commit

Permalink
Fix OCA#78. Test it too.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jairo Llopis authored and edlopen committed Mar 1, 2024
1 parent c6f8dd8 commit 640859d
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 18 deletions.
15 changes: 15 additions & 0 deletions partner_firstname/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,21 @@ class ResPartner(models.Model):
required=False,
store=True)

@api.model
def default_get(self, fields_list):
"""Invert name when getting default values."""
result = super(ResPartner, self).default_get(fields_list)

inverted = self._get_inverse_name(
result.get("name", ""),
result.get("is_company", False))

for field in inverted.keys():
if field in fields_list:
result[field] = inverted.get(field)

return result

@api.model
def _get_computed_name(self, lastname, firstname):
"""Compute the 'name' field according to splitted data.
Expand Down
2 changes: 1 addition & 1 deletion partner_firstname/tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@
#
##############################################################################

from . import test_empty, test_name, test_onchange
from . import test_defaults, test_empty, test_name, test_onchange
35 changes: 18 additions & 17 deletions partner_firstname/tests/test_defaults.py
Original file line number Diff line number Diff line change
@@ -1,46 +1,48 @@
# Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L. - Jairo Llopis.
# -*- coding: utf-8 -*-
# © 2015 Grupo ESOC Ingeniería de Servicios, S.L. - Jairo Llopis.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

"""Test default values for models."""

from odoo.tests.common import TransactionCase

from openerp.tests.common import TransactionCase
from .base import MailInstalled


class PersonCase(TransactionCase):
"""Test ``res.partner`` when it is a person."""

context = {"default_is_company": False}
model = "res.partner"

def setUp(self):
super(PersonCase, self).setUp()
self.values = {"firstname": "Núñez", "lastname": "Fernán"}
self.values["name"] = "{} {}".format(
self.values["firstname"], self.values["lastname"]
)
self.values = {
"firstname": u"Núñez",
"lastname": u"Fernán",
}
self.values["name"] = "%s %s" % (self.values["lastname"],
self.values["firstname"])
if "default_is_company" in self.context:
self.values["is_company"] = self.context["default_is_company"]

def tearDown(self):
for key, value in self.values.items():
self.assertEqual(self.defaults.get(key), value, "Checking key %s" % key)
for key, value in self.values.iteritems():
self.assertEqual(
self.defaults.get(key),
value,
"Checking key %s" % key)

return super(PersonCase, self).tearDown()

def test_default_get(self):
"""Getting default values for fields includes new fields."""
self.defaults = (
self.env[self.model]
.with_context(self.context, default_name=self.values["name"])
.default_get(list(self.values.keys()))
)
self.defaults = (self.env[self.model]
.with_context(self.context,
default_name=self.values["name"])
.default_get(self.values.keys()))


class CompanyCase(PersonCase):
"""Test ``res.partner`` when it is a company."""

context = {"default_is_company": True}

def tearDown(self):
Expand All @@ -50,7 +52,6 @@ def tearDown(self):

class UserCase(PersonCase, MailInstalled):
"""Test ``res.users``."""

model = "res.users"
context = {"default_login": "user@example.com"}

Expand Down

0 comments on commit 640859d

Please sign in to comment.