diff options
Diffstat (limited to 'odoo/addons/test_new_api')
| -rw-r--r-- | odoo/addons/test_new_api/ir.model.access.csv | 1 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/models.py | 8 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/__init__.py | 1 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_qweb_float.py | 66 |
4 files changed, 76 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/ir.model.access.csv b/odoo/addons/test_new_api/ir.model.access.csv index b44f6e248bd..e071b1b25f1 100644 --- a/odoo/addons/test_new_api/ir.model.access.csv +++ b/odoo/addons/test_new_api/ir.model.access.csv @@ -1,5 +1,6 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" access_category,test_new_api_category,test_new_api.model_test_new_api_category,,1,1,1,1 +access_decimal_precision_test_all,decimal.precision.test,model_decimal_precision_test,,1,1,1,1 access_discussion,test_new_api_discussion,test_new_api.model_test_new_api_discussion,,1,1,1,1 access_message,test_new_api_message,test_new_api.model_test_new_api_message,,1,1,1,1 access_emailmessage,test_new_api_emailmessage,test_new_api.model_test_new_api_emailmessage,,1,1,1,1 diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py index 31e8e9eeeb1..cfa4d48cad5 100644 --- a/odoo/addons/test_new_api/models.py +++ b/odoo/addons/test_new_api/models.py @@ -560,3 +560,11 @@ class AttachmentHost(models.Model): 'test_new_api.attachment', 'res_id', auto_join=True, domain=lambda self: [('res_model', '=', self._name)], ) + +class DecimalPrecisionTestModel(models.Model): + _name = 'decimal.precision.test' + _description = 'Decimal Precision Test' + + float = fields.Float() + float_2 = fields.Float(digits=(16, 2)) + float_4 = fields.Float(digits=(16, 4)) diff --git a/odoo/addons/test_new_api/tests/__init__.py b/odoo/addons/test_new_api/tests/__init__.py index b368bc5a45d..eb3f8a53805 100644 --- a/odoo/addons/test_new_api/tests/__init__.py +++ b/odoo/addons/test_new_api/tests/__init__.py @@ -4,6 +4,7 @@ from . import test_new_fields from . import test_onchange from . import test_attributes from . import test_one2many +from . import test_qweb_float from . import test_ui from . import test_domain from . import test_schema diff --git a/odoo/addons/test_new_api/tests/test_qweb_float.py b/odoo/addons/test_new_api/tests/test_qweb_float.py new file mode 100644 index 00000000000..5e696fdf9ca --- /dev/null +++ b/odoo/addons/test_new_api/tests/test_qweb_float.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +from odoo.tests import common + + +class TestFloatExport(common.TransactionCase): + + def get_converter(self, name): + FloatField = self.env['ir.qweb.field.float'] + _, precision = self.env['decimal.precision.test']._fields[name].get_digits(self.env) or (None, None) + + def converter(value, options=None): + record = self.env['decimal.precision.test'].new({name: value}) + return FloatField.record_to_html(record, name, options or {}) + return converter + + def test_basic_float(self): + converter = self.get_converter('float') + self.assertEqual( + converter(42.0), + "42.0") + self.assertEqual( + converter(42.12345), + "42.12345") + + converter = self.get_converter('float_2') + self.assertEqual( + converter(42.0), + "42.00") + self.assertEqual( + converter(42.12345), + "42.12") + + converter = self.get_converter('float') # don't use float_4 because the field value 42.12345 is already orm converted to 42.1235 + self.assertEqual( + converter(42.0, {'precision': 4}), + '42.0000') + self.assertEqual( + converter(42.12345, {'precision': 4}), + '42.1235') + + def test_precision_domain(self): + self.env['decimal.precision'].create({ + 'name': 'A', + 'digits': 2, + }) + self.env['decimal.precision'].create({ + 'name': 'B', + 'digits': 6, + }) + + converter = self.get_converter('float') + self.assertEqual( + converter(42.0, {'decimal_precision': 'A'}), + '42.00') + self.assertEqual( + converter(42.0, {'decimal_precision': 'B'}), + '42.000000') + + converter = self.get_converter('float') # don't use float_4 because the field value 42.12345 is orm converted to 42.1235 + self.assertEqual( + converter(42.12345, {'decimal_precision': 'A'}), + '42.12') + self.assertEqual( + converter(42.12345, {'decimal_precision': 'B'}), + '42.123450') |
