[IMP] use model._fields instead of model._all_columns to cover all fields
[odoo/odoo.git] / addons / decimal_precision / tests / test_qweb_float.py
1 # -*- coding: utf-8 -*-
2 from openerp.tests import common
3
4 class TestFloatExport(common.TransactionCase):
5     def setUp(self):
6         super(TestFloatExport, self).setUp()
7         self.Model = self.registry('decimal.precision.test')
8
9     def get_converter(self, name):
10         converter = self.registry('ir.qweb.field.float')
11         field = self.Model._fields[name]
12
13         return lambda value, options=None: converter.value_to_html(
14             self.cr, self.uid, value, field, options=options, context=None)
15
16     def test_basic_float(self):
17         converter = self.get_converter('float')
18         self.assertEqual(
19             converter(42.0),
20             "42.0")
21         self.assertEqual(
22             converter(42.12345),
23             "42.12345")
24
25         converter = self.get_converter('float_2')
26         self.assertEqual(
27             converter(42.0),
28             "42.00")
29         self.assertEqual(
30             converter(42.12345),
31             "42.12")
32
33         converter = self.get_converter('float_4')
34         self.assertEqual(
35             converter(42.0),
36             '42.0000')
37         self.assertEqual(
38             converter(42.12345),
39             '42.1234')
40
41     def test_precision_domain(self):
42         DP = self.registry('decimal.precision')
43         DP.create(self.cr, self.uid, {
44             'name': 'A',
45             'digits': 2,
46         })
47         DP.create(self.cr, self.uid, {
48             'name': 'B',
49             'digits': 6,
50         })
51
52         converter = self.get_converter('float')
53         self.assertEqual(
54             converter(42.0, {'decimal_precision': 'A'}),
55             '42.00')
56         self.assertEqual(
57             converter(42.0, {'decimal_precision': 'B'}),
58             '42.000000')
59
60         converter = self.get_converter('float_4')
61         self.assertEqual(
62             converter(42.12345, {'decimal_precision': 'A'}),
63             '42.12')
64         self.assertEqual(
65             converter(42.12345, {'decimal_precision': 'B'}),
66             '42.123450')