Fix some issues related to default values

This commit is contained in:
Alan Boudreault
2017-03-24 16:33:20 -04:00
parent 2f47415816
commit d146052994
2 changed files with 8 additions and 4 deletions

View File

@@ -37,7 +37,7 @@ class BaseValueManager(object):
@property
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
def changed(self):

View File

@@ -514,16 +514,20 @@ class TestUpdating(BaseCassEngTestCase):
# yet.
self.assertTrue(instance._values['id'].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['int4'].previous_value is None)
self.assertTrue(instance._values['int5'].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
# flagged has changed.
self.assertTrue(set(instance.get_changed_columns()) == set([
'id', 'int1', 'int2', 'int3', 'int4', 'int5']))
'id', 'int1', 'int3', 'int5']))
def test_save_to_none(self):
"""