I've wrapped Campaign.status with a property decorator -- access campaign status as campaign.status not campaign.status() now.
parent
e25894d549
commit
ca2fc9afdc
|
@ -29,7 +29,8 @@ class Campaign(models.Model):
|
|||
return u"Campaign for %s" % self.work.title
|
||||
except:
|
||||
return u"Campaign %s (no associated work)" % self.name
|
||||
|
||||
|
||||
@property
|
||||
def status(self):
|
||||
"""Returns the status of the campaign
|
||||
"""
|
||||
|
@ -53,7 +54,7 @@ class Campaign(models.Model):
|
|||
return 'ACTIVE'
|
||||
|
||||
def activate(self):
|
||||
status = self.status()
|
||||
status = self.status
|
||||
if status != 'INITIALIZED':
|
||||
raise UnglueitError('Campaign needs to be initialized in order to be activated')
|
||||
self.activated = datetime.datetime.utcnow()
|
||||
|
@ -61,7 +62,7 @@ class Campaign(models.Model):
|
|||
return self
|
||||
|
||||
def suspend(self, reason):
|
||||
status = self.status()
|
||||
status = self.status
|
||||
if status != 'ACTIVE':
|
||||
raise UnglueitError('Campaign needs to be active in order to be suspended')
|
||||
self.suspended = datetime.datetime.utcnow()
|
||||
|
@ -70,7 +71,7 @@ class Campaign(models.Model):
|
|||
return self
|
||||
|
||||
def withdraw(self, reason):
|
||||
status = self.status()
|
||||
status = self.status
|
||||
if status != 'ACTIVE':
|
||||
raise UnglueitError('Campaign needs to be active in order to be withdrawn')
|
||||
self.withdrawn = datetime.datetime.utcnow()
|
||||
|
@ -80,7 +81,7 @@ class Campaign(models.Model):
|
|||
|
||||
def resume(self):
|
||||
"""Change campaign status from SUSPENDED to ACTIVE. We may want to track reason for resuming and track history"""
|
||||
status = self.status()
|
||||
status = self.status
|
||||
if status != 'SUSPENDED':
|
||||
raise UnglueitError('Campaign needs to be suspended in order to be resumed')
|
||||
self.suspended = None
|
||||
|
|
|
@ -88,27 +88,27 @@ class CampaignTests(TestCase):
|
|||
# INITIALIZED
|
||||
c1 = Campaign(target=D('1000.00'),deadline=datetime(2012,1,1),work=w)
|
||||
c1.save()
|
||||
self.assertEqual(c1.status(), 'INITIALIZED')
|
||||
self.assertEqual(c1.status, 'INITIALIZED')
|
||||
# ACTIVATED
|
||||
c2 = Campaign(target=D('1000.00'),deadline=datetime(2012,1,1),work=w)
|
||||
c2.save()
|
||||
self.assertEqual(c2.status(), 'INITIALIZED')
|
||||
self.assertEqual(c2.status, 'INITIALIZED')
|
||||
c2.activate()
|
||||
self.assertEqual(c2.status(), 'ACTIVE')
|
||||
self.assertEqual(c2.status, 'ACTIVE')
|
||||
# SUSPENDED
|
||||
c2.suspend(reason="for testing")
|
||||
self.assertEqual(c2.status(), 'SUSPENDED')
|
||||
self.assertEqual(c2.status, 'SUSPENDED')
|
||||
# RESUMING
|
||||
c2.resume()
|
||||
self.assertEqual(c2.suspended, None)
|
||||
self.assertEqual(c2.status(),'ACTIVE')
|
||||
self.assertEqual(c2.status,'ACTIVE')
|
||||
# should not let me suspend a campaign that hasn't been initialized
|
||||
self.assertRaises(UnglueitError, c1.suspend, "for testing")
|
||||
# UNSUCCESSFUL
|
||||
c3 = Campaign(target=D('1000.00'),deadline=datetime.utcnow() - timedelta(days=1),work=w)
|
||||
c3.save()
|
||||
c3.activate()
|
||||
self.assertEqual(c3.status(), 'UNSUCCESSFUL')
|
||||
self.assertEqual(c3.status, 'UNSUCCESSFUL')
|
||||
# SUCCESSFUL
|
||||
c4 = Campaign(target=D('1000.00'),deadline=datetime.utcnow() - timedelta(days=1),work=w)
|
||||
c4.save()
|
||||
|
@ -120,18 +120,18 @@ class CampaignTests(TestCase):
|
|||
t.status = 'ACTIVE'
|
||||
t.campaign = c4
|
||||
t.save()
|
||||
self.assertEqual(c4.status(), 'SUCCESSFUL')
|
||||
self.assertEqual(c4.status, 'SUCCESSFUL')
|
||||
|
||||
# ACTIVE
|
||||
c4.deadline = datetime.utcnow() + timedelta(days=1)
|
||||
c4.save()
|
||||
self.assertEqual(c4.status(), 'ACTIVE')
|
||||
self.assertEqual(c4.status, 'ACTIVE')
|
||||
|
||||
# WITHDRAWN
|
||||
c5 = Campaign(target=D('1000.00'),deadline=datetime(2012,1,1),work=w)
|
||||
c5.save()
|
||||
c5.activate().withdraw('testing')
|
||||
self.assertEqual(c5.status(), 'WITHDRAWN')
|
||||
self.assertEqual(c5.status, 'WITHDRAWN')
|
||||
|
||||
def suite():
|
||||
|
||||
|
|
Loading…
Reference in New Issue