Import zero value as non null value
issue8658 review282121004
This commit is contained in:
1 parent
d782949f5a
commit
afd08618f0
2 files changed
+57
-3
No files matched your search
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in new issue
Block a user