[FIX] make conversion errors for floats and integers more predictable

Python turns out to have changed the wording of the messages between 2.6 and 2.7

also, these messages need to be translatable *and* use the human-readable field name

bzr revid: xmo@openerp.com-20120927103452-cvgv3e8dsvcvnics
This commit is contained in:
Xavier Morel
2012-09-27 12:34:52 +02:00
parent 9d175bdfd6
commit f39730e918
2 changed files with 14 additions and 4 deletions
+12 -2
View File
@@ -100,10 +100,20 @@ class ir_fields_converter(orm.Model):
return True
def _str_to_integer(self, cr, uid, model, column, value, context=None):
return int(value)
try:
return int(value)
except ValueError:
raise ValueError(
_(u"'%s' does not seem to be an integer for field '%%(field)s'")
% value)
def _str_to_float(self, cr, uid, model, column, value, context=None):
return float(value)
try:
return float(value)
except ValueError:
raise ValueError(
_(u"'%s' does not seem to be a number for field '%%(field)s'")
% value)
def _str_to_char(self, cr, uid, model, column, value, context=None):
return value
@@ -275,7 +275,7 @@ class test_integer_field(ImporterCase):
'rows': {'from': 0, 'to': 0},
'record': 0,
'field': 'value',
'message': u"invalid literal for int() with base 10: 'zorglub'",
'message': u"'zorglub' does not seem to be an integer for field 'unknown'",
}])
class test_float_field(ImporterCase):
@@ -344,7 +344,7 @@ class test_float_field(ImporterCase):
'rows': {'from': 0, 'to': 0},
'record': 0,
'field': 'value',
'message': u"invalid literal for float(): foobar",
'message': u"'foobar' does not seem to be a number for field 'unknown'",
}])
class test_string_field(ImporterCase):