summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-06-19 13:42:32 +0000
committerMartin Trigaux <mat@odoo.com>2019-07-03 11:16:24 +0000
commitdd2fae2ead6ea00dfc7e7a6e1d3a0a5624e478f7 (patch)
tree1ec47d8c0ef5bff81affb234e4f9088e4473185a /odoo/addons/test_new_api
parenta1eb000c93a5a64b3041c48ed9b1eaf3c03257d3 (diff)
[IMP] base: remove decimal.precision.test model
It should not be a standard model but a test model
Diffstat (limited to 'odoo/addons/test_new_api')
-rw-r--r--odoo/addons/test_new_api/ir.model.access.csv1
-rw-r--r--odoo/addons/test_new_api/models.py8
-rw-r--r--odoo/addons/test_new_api/tests/__init__.py1
-rw-r--r--odoo/addons/test_new_api/tests/test_qweb_float.py66
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')