From 4eb478fd14be1f3266c582333d75f764d1dc0213 Mon Sep 17 00:00:00 2001 From: Karan Lyons Date: Wed, 2 Oct 2013 18:39:25 -0700 Subject: [PATCH] Add `update_together` test. --- save_the_change/mixins.py | 4 ++-- tests/testproject/testapp/tests.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/save_the_change/mixins.py b/save_the_change/mixins.py index f85a5cb..0ecb535 100644 --- a/save_the_change/mixins.py +++ b/save_the_change/mixins.py @@ -245,7 +245,7 @@ def __new__(cls, name, bases, attrs): for dependent in codependents: mapping[dependent].update(codependents) - update_together = mapping + update_together = dict(mapping) if meta: setattr(meta, 'update_together', update_together) @@ -270,7 +270,7 @@ def save(self, *args, **kwargs): update_fields = set() for field in kwargs['update_fields']: - update_fields.update(self._meta.update_together[field]) + update_fields.update(self._meta.update_together.get(field, {})) kwargs['update_fields'] = list(update_fields) diff --git a/tests/testproject/testapp/tests.py b/tests/testproject/testapp/tests.py index ddcfd42..5d11125 100644 --- a/tests/testproject/testapp/tests.py +++ b/tests/testproject/testapp/tests.py @@ -92,7 +92,7 @@ def create_initial(self): self.old_values['id'] = m.id self.new_values['id'] = m.id - + return m def create_changed(self): @@ -240,6 +240,18 @@ def test_changed_twice_new_values(self): self.assertEquals(m.new_values, new_values) + def test_updated_together_values(self): + m = self.create_saved() + EnlightenedModel.objects.all().update(big_integer=0) + + new_values = self.new_values + new_values['small_integer'] = 0 + + m.small_integer = new_values['small_integer'] + m.save() + + self.assertEquals(m.new_values, new_values) + """ Regression Tests