summaryrefslogtreecommitdiff
path: root/odoo/addons
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2020-10-20 15:29:46 +0000
committerRaphael Collet <rco@odoo.com>2020-10-21 07:52:55 +0000
commit231bdca3f26d96f578503694e5aec062de2317ed (patch)
tree7ea32beadd5e2c66928bb72af3f2080cd4c050c3 /odoo/addons
parent3b1df8f57e0cd342fe7f9ff7bd34100b2c821569 (diff)
[FIX] core: validation of field parameters
The feature was actually not working as expected. It has been fixed, and a test now ensures it does work as expected. This commit also fixes some invalid parameters, hopefully nothing critical. closes odoo/odoo#60402 Related: odoo/enterprise#14273 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons')
-rw-r--r--odoo/addons/base/models/ir_attachment.py2
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py22
2 files changed, 23 insertions, 1 deletions
diff --git a/odoo/addons/base/models/ir_attachment.py b/odoo/addons/base/models/ir_attachment.py
index da5a3a25319..a8d5ce90672 100644
--- a/odoo/addons/base/models/ir_attachment.py
+++ b/odoo/addons/base/models/ir_attachment.py
@@ -335,7 +335,7 @@ class IrAttachment(models.Model):
access_token = fields.Char('Access Token', groups="base.group_user")
# the field 'datas' is computed and may use the other fields below
- raw = fields.Binary(string="File Content (raw)", compute='_compute_raw', inverse='_inverse_raw', context_dependent=False)
+ raw = fields.Binary(string="File Content (raw)", compute='_compute_raw', inverse='_inverse_raw')
datas = fields.Binary(string='File Content (base64)', compute='_compute_datas', inverse='_inverse_datas')
db_datas = fields.Binary('Database Data', attachment=False)
store_fname = fields.Char('Stored Filename')
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index f93baf0e83e..c07a299cfe6 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -2906,6 +2906,28 @@ class TestSelectionOndeleteAdvanced(common.TransactionCase):
self.registry.setup_models(self.env.cr)
+class TestFieldParametersValidation(common.TransactionCase):
+ def test_invalid_parameter(self):
+ self.addCleanup(self.registry.model_cache.clear)
+
+ class Foo(models.Model):
+ _module = None
+ _name = _description = 'test_new_api.field_parameter_validation'
+
+ name = fields.Char(invalid_parameter=42)
+
+ Foo._build_model(self.registry, self.env.cr)
+ self.addCleanup(self.registry.__delitem__, Foo._name)
+
+ with self.assertLogs('odoo.fields', level='WARNING') as cm:
+ self.registry.setup_models(self.env.cr)
+
+ self.assertTrue(cm.output[0].startswith(
+ "WARNING:odoo.fields:Field test_new_api.field_parameter_validation.name: "
+ "unknown parameter 'invalid_parameter'"
+ ))
+
+
def insert(model, *fnames):
""" Return the expected query string to INSERT the given columns. """
columns = ['create_uid', 'create_date', 'write_uid', 'write_date'] + sorted(fnames)