Skip to content

Commit ea18503

Browse files
authored
Merge pull request google#64 from google/reload
Set start_values on model reload
2 parents 6c4d682 + 81b90a6 commit ea18503

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

spanner_orm/model.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,9 +569,15 @@ def reload(self, transaction: spanner_transaction.Transaction = None
569569
updated_object = self._metaclass.find(transaction, **self.id())
570570
if updated_object is None:
571571
return None
572+
start_values = {}
573+
572574
for column in self._columns:
575+
value = getattr(updated_object, column)
576+
start_values[column] = copy.copy(value)
573577
if column not in self._primary_keys:
574-
setattr(self, column, getattr(updated_object, column))
578+
setattr(self, column, value)
579+
580+
self.start_values = start_values
575581
self._persisted = True
576582
return self
577583

spanner_orm/tests/model_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ def test_reload_reloads(self, find):
148148
find.return_value = models.SmallTestModel(updated_values)
149149
model.reload()
150150
self.assertEqual(model.value_1, updated_values['value_1'])
151+
self.assertEqual(model.changes(), {})
151152

152153
@mock.patch('spanner_orm.model.ModelApi.create')
153154
def test_save_creates(self, create):

0 commit comments

Comments
 (0)