Fix some issues related to default values
This commit is contained in:
@@ -37,7 +37,7 @@ class BaseValueManager(object):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def deleted(self):
|
def deleted(self):
|
||||||
return self.column._val_is_null(self.value) and (self.explicit or self.previous_value is not None)
|
return self.column._val_is_null(self.value) and (self.explicit or not self.column._val_is_null(self.previous_value))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def changed(self):
|
def changed(self):
|
||||||
|
|||||||
@@ -514,16 +514,20 @@ class TestUpdating(BaseCassEngTestCase):
|
|||||||
# yet.
|
# yet.
|
||||||
self.assertTrue(instance._values['id'].previous_value is None)
|
self.assertTrue(instance._values['id'].previous_value is None)
|
||||||
self.assertTrue(instance._values['int1'].previous_value is None)
|
self.assertTrue(instance._values['int1'].previous_value is None)
|
||||||
self.assertTrue(instance._values['int2'].previous_value is None)
|
|
||||||
self.assertTrue(instance._values['int3'].previous_value is None)
|
self.assertTrue(instance._values['int3'].previous_value is None)
|
||||||
self.assertTrue(instance._values['int4'].previous_value is None)
|
|
||||||
self.assertTrue(instance._values['int5'].previous_value is None)
|
self.assertTrue(instance._values['int5'].previous_value is None)
|
||||||
self.assertTrue(instance._values['int6'].previous_value is None)
|
self.assertTrue(instance._values['int6'].previous_value is None)
|
||||||
|
|
||||||
|
# When a column has a default value and that field has no explicit value specified at
|
||||||
|
# the instance creation, the previous_value should be set to the default value to
|
||||||
|
# avoid any undesired update
|
||||||
|
self.assertEqual(instance._values['int2'].previous_value, 456)
|
||||||
|
self.assertIsNotNone(instance._values['int4'])
|
||||||
|
|
||||||
# All explicitely set columns, and those with default values are
|
# All explicitely set columns, and those with default values are
|
||||||
# flagged has changed.
|
# flagged has changed.
|
||||||
self.assertTrue(set(instance.get_changed_columns()) == set([
|
self.assertTrue(set(instance.get_changed_columns()) == set([
|
||||||
'id', 'int1', 'int2', 'int3', 'int4', 'int5']))
|
'id', 'int1', 'int3', 'int5']))
|
||||||
|
|
||||||
def test_save_to_none(self):
|
def test_save_to_none(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user