Import zero value as non null value

issue8658
review282121004
This commit is contained in:
Sebastien Marie committed 2019-09-17 23:12:51 +02:00
1 parent d782949f5a
commit afd08618f0
2 files changed
+57 -3

No files matched your search

+18 -3
View File
@@ -859,11 +859,26 @@ class ModelStorage(Model):
else:
res = bool(int(value))
elif field_type == 'integer':
res = int(value) if value else None
if isinstance(value, int):
res = value
elif value:
res = int(value)
else:
res = None
elif field_type == 'float':
res = float(value) if value else None
if isinstance(value, float):
res = value
elif value:
res = float(value)
else:
res = None
elif field_type == 'numeric':
res = Decimal(value) if value else None
if isinstance(value, Decimal):
res = value
elif value:
res = Decimal(value)
else:
res = None
elif field_type == 'date':
if isinstance(value, datetime.date):
res = value
+39
View File
@@ -55,6 +55,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Integer.import_data(['integer'],
[['1']]), 1)
self.assertEqual(Integer.import_data(['integer'],
[[0]]), 1)
self.assertEqual(Integer.import_data(['integer'],
[[1]]), 1)
@@ -79,6 +82,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Integer.import_data(['integer'],
[['0']]), 1)
self.assertEqual(Integer.import_data(['integer'],
[[None]]), 1)
@with_transaction()
def test_integer_required(self):
'Test required integer'
@@ -111,6 +117,13 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(IntegerRequired.import_data(['integer'],
[['0']]), 1)
self.assertEqual(IntegerRequired.import_data(['integer'],
[[0]]), 1)
with self.assertRaises(RequiredValidationError):
IntegerRequired.import_data(['integer'], [[None]])
transaction.rollback()
@with_transaction()
def test_float(self):
'Test float'
@@ -120,6 +133,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Float.import_data(['float'],
[['1.1']]), 1)
self.assertEqual(Float.import_data(['float'],
[[0.0]]), 1)
self.assertEqual(Float.import_data(['float'],
[[1.1]]), 1)
@@ -144,6 +160,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Float.import_data(['float'],
[['0.0']]), 1)
self.assertEqual(Float.import_data(['float'],
[[None]]), 1)
@with_transaction()
def test_float_required(self):
'Test required float'
@@ -176,6 +195,13 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(FloatRequired.import_data(['float'],
[['0.0']]), 1)
self.assertEqual(FloatRequired.import_data(['float'],
[[0.0]]), 1)
with self.assertRaises(RequiredValidationError):
FloatRequired.import_data(['float'], [[None]])
transaction.rollback()
@with_transaction()
def test_numeric(self):
'Test numeric'
@@ -185,6 +211,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Numeric.import_data(['numeric'],
[['1.1']]), 1)
self.assertEqual(Numeric.import_data(['numeric'],
[[Decimal('0.0')]]), 1)
self.assertEqual(Numeric.import_data(['numeric'],
[[Decimal('1.1')]]), 1)
@@ -209,6 +238,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Numeric.import_data(['numeric'],
[['0.0']]), 1)
self.assertEqual(Numeric.import_data(['numeric'],
[[None]]), 1)
@with_transaction()
def test_numeric_required(self):
'Test required numeric'
@@ -241,6 +273,13 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(NumericRequired.import_data(['numeric'],
[['0.0']]), 1)
self.assertEqual(NumericRequired.import_data(['numeric'],
[[Decimal('0.0')]]), 1)
with self.assertRaises(RequiredValidationError):
NumericRequired.import_data(['numeric'], [[None]])
transaction.rollback()
@with_transaction()
def test_char(self):
'Test char'