Model.load() should remove flexible fields

This commit is contained in:
Thomas Scholtes 2014-09-10 17:22:23 +02:00
parent 5a799c7fbe
commit 9ee794beb7
2 changed files with 16 additions and 0 deletions

View file

@ -382,6 +382,8 @@ class Model(object):
self._check_db()
stored_obj = self._db._get(type(self), self.id)
assert stored_obj is not None, "object {0} not in DB".format(self.id)
self._values_fixed = {}
self._values_flex = {}
self.update(dict(stored_obj))
self.clear_dirty()

View file

@ -249,6 +249,20 @@ class ModelTest(unittest.TestCase):
model.some_float_field = None
self.assertEqual(model.some_float_field, 0.0)
def test_load_deleted_flex_field(self):
model1 = TestModel1()
model1['flex_field'] = True
model1.add(self.db)
model2 = self.db._get(TestModel1, model1.id)
self.assertIn('flex_field', model2)
del model1['flex_field']
model1.store()
model2.load()
self.assertNotIn('flex_field', model2)
class FormatTest(unittest.TestCase):
def test_format_fixed_field(self):