diff options
| author | Raphael Collet <rco@odoo.com> | 2020-10-20 15:29:46 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2020-10-21 07:52:55 +0000 |
| commit | 231bdca3f26d96f578503694e5aec062de2317ed (patch) | |
| tree | 7ea32beadd5e2c66928bb72af3f2080cd4c050c3 /odoo/addons | |
| parent | 3b1df8f57e0cd342fe7f9ff7bd34100b2c821569 (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.py | 2 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_new_fields.py | 22 |
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) |
