diff options
| author | Raphael Collet <rco@openerp.com> | 2017-01-19 16:29:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-01-19 16:29:29 +0100 |
| commit | b0646f9d2c983481f20bea31f8f6427bbfccb245 (patch) | |
| tree | f3e22dd4dc6ab5c09331af50e30c71616fcd0048 /addons/base_sparse_field/tests | |
| parent | cb90aeade61c8b19ee0313a948ef2fbbf44b2380 (diff) | |
[REF] move support for sparse fields into a separate module (#15070)
This removal has led to a necessary refactoring:
- make the setup of field attributes extensible;
- make the instantiation of custom fields extensible;
- delegate model and field reflection to `ir.model` and `ir.model.fields`;
- move the implementation of sparse and serialized fields to module `base_sparse_field`;
Diffstat (limited to 'addons/base_sparse_field/tests')
| -rw-r--r-- | addons/base_sparse_field/tests/__init__.py | 3 | ||||
| -rw-r--r-- | addons/base_sparse_field/tests/test_sparse_fields.py | 40 |
2 files changed, 43 insertions, 0 deletions
diff --git a/addons/base_sparse_field/tests/__init__.py b/addons/base_sparse_field/tests/__init__.py new file mode 100644 index 00000000000..1dc570533d5 --- /dev/null +++ b/addons/base_sparse_field/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import test_sparse_fields diff --git a/addons/base_sparse_field/tests/test_sparse_fields.py b/addons/base_sparse_field/tests/test_sparse_fields.py new file mode 100644 index 00000000000..7c7e8264d34 --- /dev/null +++ b/addons/base_sparse_field/tests/test_sparse_fields.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +from odoo.tests import common + + +class TestSparseFields(common.TransactionCase): + + def test_sparse(self): + """ test sparse fields. """ + record = self.env['sparse_fields.test'].create({}) + self.assertFalse(record.data) + + partner = self.env.ref('base.main_partner') + values = [ + ('boolean', True), + ('integer', 42), + ('float', 3.14), + ('char', 'John'), + ('selection', 'two'), + ('partner', partner.id), + ] + for n, (key, val) in enumerate(values): + record.write({key: val}) + self.assertEqual(record.data, dict(values[:n+1])) + + for key, val in values[:-1]: + self.assertEqual(record[key], val) + self.assertEqual(record.partner, partner) + + for n, (key, val) in enumerate(values): + record.write({key: False}) + self.assertEqual(record.data, dict(values[n+1:])) + + # check reflection of sparse fields in 'ir.model.fields' + names = [name for name, _ in values] + domain = [('model', '=', 'sparse_fields.test'), ('name', 'in', names)] + fields = self.env['ir.model.fields'].search(domain) + self.assertEqual(len(fields), len(names)) + for field in fields: + self.assertEqual(field.serialization_field_id.name, 'data') |
