Regarding of the `display_default_code` context value, `display_name` is supposed to return the product code or not, eg: > product.display_name > '[FURN_6666] Acoustic Bloc Screens' > product.with_context(display_default_code=False).display_name > 'Acoustic Bloc Screens' But since the context was not considered when accessing this field, it would always return the cached value, which was set from the first time that field was read, with the `display_default_code` value used at that time. tl;dr: `display_name` was ignoring the context once cached. One of the critical issue was that internal code were displayed on the eshop cart (not the eshop itself), see `name_short`. task-2517830 closes odoo/odoo#70739 X-original-commit: b5b4d38adf1f3960cda21b795a26e67b978b2901 Signed-off-by: Raphael Collet (rco) <rco@openerp.com> Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
25 lines
995 B
Python
25 lines
995 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class TestName(TransactionCase):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.product_name = 'Product Test Name'
|
|
self.product_code = 'PTN'
|
|
self.product = self.env['product.product'].create({
|
|
'name': self.product_name,
|
|
'default_code': self.product_code,
|
|
})
|
|
|
|
def test_10_product_name(self):
|
|
display_name = self.product.display_name
|
|
self.assertEqual(display_name, "[%s] %s" % (self.product_code, self.product_name),
|
|
"Code should be preprended the the name as the context is not preventing it.")
|
|
display_name = self.product.with_context(display_default_code=False).display_name
|
|
self.assertEqual(display_name, self.product_name,
|
|
"Code should not be preprended to the name as context should prevent it.")
|