From c43b1ba99d66e4e60c85689e00c107686ecfa023 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Thu, 15 Apr 2010 23:07:12 -0400 Subject: [PATCH] remove previous_status from StatusField public API I may be missing the use case, but this seems too ephemeral to be useful (only exists on same instance after a save, can't rely on it being there in general). If it's just an implementation detail for StatusModifiedField, it doesn't need to be tested in public API for StatusField. --- model_utils/fields.py | 10 +++------- model_utils/tests/tests.py | 14 +------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/model_utils/fields.py b/model_utils/fields.py index 4b92223..46f4dd8 100644 --- a/model_utils/fields.py +++ b/model_utils/fields.py @@ -42,6 +42,7 @@ def _previous_status(model_instance, attname, add): return None return getattr(current, attname, None) + class StatusField(models.CharField): """ A CharField that has set status choices by default. @@ -54,17 +55,12 @@ class StatusField(models.CharField): def contribute_to_class(self, cls, name): if not cls._meta.abstract: assert hasattr(cls, 'STATUS'), \ - "The model '%s' doesn't have status choices." % cls.__name__ + "To use StatusField, the model '%s' must have a STATUS choices attribute." \ + % cls.__name__ setattr(self, '_choices', cls.STATUS) setattr(self, 'default', tuple(cls.STATUS)[0][0]) # sets first as default super(StatusField, self).contribute_to_class(cls, name) - def pre_save(self, model_instance, add): - previous = _previous_status(model_instance, 'get_%s_display' % self.attname, add) - if previous: - previous = previous() - setattr(model_instance, 'previous_status', previous) - return super(StatusField, self).pre_save(model_instance, add) class StatusModifiedField(models.DateTimeField): diff --git a/model_utils/tests/tests.py b/model_utils/tests/tests.py index d556964..ef96a85 100644 --- a/model_utils/tests/tests.py +++ b/model_utils/tests/tests.py @@ -179,13 +179,7 @@ class StatusModelTests(TestCase): t1.save() self.assert_(t1.status_date > date_active_again) - def testPreviousConditon(self): - status = self.model.objects.create() - self.assertEquals(status.previous_status, None) - status.status = status.STATUS.on_hold - status.save() - self.assertEquals(status.previous_status, status.STATUS.active) - + class Status2ModelTests(StatusModelTests): def setUp(self): self.model = Status2 @@ -206,12 +200,6 @@ class Status2ModelTests(StatusModelTests): t1.save() self.assert_(t1.status_date > date_active_again) - def testPreviousConditon(self): - status = self.model.objects.create() - self.assertEquals(status.previous_status, None) - status.status = status.STATUS[2][0] - status.save() - self.assertEquals(status.previous_status, status.STATUS[0][0]) class QueryManagerTests(TestCase): def setUp(self):