Tests working as intended, it seems the failing tests actually fail

This commit is contained in:
Mark Polak committed 2013-10-16 20:58:23 +02:00
1 parent ff13f00c2b
commit 08ffe4b2f3
3 files changed
+39 -29

No files matched your search

+22 -1
View File
@@ -1 +1,22 @@
[{"pk": 1, "model": "dusken.membershiptype", "fields": {"duration_months": 12, "updated": "2013-09-11T18:44:13.123Z", "name": "Medlemskap ved DNS", "created": "2013-09-11T18:44:13.123Z", "end_month": 7, "end_day_of_month": 31}}, {"pk": 2, "model": "dusken.membershiptype", "fields": {"duration_months": 6, "updated": "2013-09-11T18:44:31.824Z", "name": "Halvtaarsmedlemskap", "created": "2013-09-11T18:44:31.824Z", "end_month": 7, "end_day_of_month": 31}}]
[
{
"pk": 1,
"model": "dusken.membershiptype",
"fields": {
"updated": "2013-09-11T18:44:13.123Z",
"name": "Medlemskap ved DNS",
"created": "2013-09-11T18:44:13.123Z",
"end_date": "2013-09-11"
}
},
{
"pk": 2,
"model": "dusken.membershiptype",
"fields": {
"updated": "2013-09-11T18:44:31.824Z",
"name": "Halvtaarsmedlemskap",
"created": "2013-09-11T18:44:31.824Z",
"end_date": "2013-09-11"
}
}
]
+8 -21
View File
@@ -9,6 +9,7 @@ class BaseModel(models.Model):
class Meta:
abstract = True
class Member(django.contrib.auth.models.User):
def __unicode__(self):
if len(self.first_name) + len(self.last_name) > 0:
@@ -26,6 +27,7 @@ class Member(django.contrib.auth.models.User):
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Membership(BaseModel):
def __unicode__(self):
return u"{member}: {fromdate}".format(member=self.member, fromdate=self.start_date)
@@ -36,7 +38,7 @@ class Membership(BaseModel):
member = models.ForeignKey('dusken.Member')
def expires(self):
return self.mtype.end_date()
return self.mtype.end_date
'''
TODO: should validate end_day_of_month and end_month (use datetime exceptions)
@@ -46,26 +48,9 @@ class MembershipType(BaseModel):
return u"{}".format(self.name)
name = models.CharField(max_length=50, unique=True)
duration_months = models.IntegerField(default=12)
end_day_of_month = models.IntegerField(default=31)
end_month = models.IntegerField(default=7)
end_date = models.DateField()
is_active = models.BooleanField(default=True)
def end_date(self):
import datetime
now = datetime.datetime.now()
year = now.year + (now.month - 1 + self.duration_months) / 12
month = (now.month - 1 + self.duration_months) % 12 + 1
end1 = datetime.datetime(year, month, now.day, 0, 0, 0)
end2 = None
# closest date which fullfills the day, month and duration specified
if now.month < self.end_month or (now.month == self.end_month and now.day < self.end_day_of_month):
end2 = datetime.datetime(now.year, self.end_month, self.end_day_of_month)
else:
end2 = datetime.datetime(now.year+1, self.end_month, self.end_day_of_month)
return min(end1, end2)
does_not_expire = models.BooleanField(default=False)
class PaymentType(models.Model):
def __unicode__(self):
@@ -74,6 +59,7 @@ class PaymentType(models.Model):
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=True)
class Payment(BaseModel):
def __unicode__(self):
return self.payment_type #TODO
@@ -91,7 +77,8 @@ class FacebookAuth(BaseModel):
token = models.CharField(max_length=255, unique=True, null=True, blank=True)
token_expires = models.DateTimeField(null=True, blank=True)
member = models.OneToOneField('dusken.Member', null=True, blank=True)
class GoogleAuth(BaseModel):
def __unicode__(self):
return u"{}".format(self.token)
+9 -7
View File
@@ -54,7 +54,9 @@ class MembershipTest(ResourceTestCase):
self.assertEqual(self.expected_membership(), self.deserialize(resp))
def test_get_membership_with_payment(self):
resp = self.do_get_request(self.member_url(4))
resp = self.do_get_request(self.member_url(3))
self.assertValidJSONResponse(resp)
def test_post_membership(self):
data = {
@@ -69,8 +71,8 @@ class MembershipTest(ResourceTestCase):
def test_patch_membership(self):
data = {
u'member': 2,
u'membership_type': 1,
#u'member': 2,
#u'membership_type': 1,
u'start_date': u'2013-09-11',
}
@@ -86,7 +88,7 @@ class MembershipTest(ResourceTestCase):
def expected_memberships(self):
return [{
u'created': u'2013-09-11T20:45:13.341000',
u'expires': u'2014-07-31T00:00:00',
u'expires': u'2013-09-11',
u'id': 1,
u'member': 2,
u'membership_type': 1,
@@ -99,7 +101,7 @@ class MembershipTest(ResourceTestCase):
u'membership_type': 1,
u'updated': u'2013-09-11T20:45:30.084000',
u'created': u'2013-09-11T20:45:30.084000',
u'expires': u'2014-07-31T00:00:00',
u'expires': u'2013-09-11',
u'id': 2, u'member': 2,
u'start_date': u'2013-09-15',
u'payment': None,
@@ -109,7 +111,7 @@ class MembershipTest(ResourceTestCase):
u'membership_type': 2,
u'updated': u'2013-09-11T20:45:53.522000',
u'created': u'2013-09-11T20:45:53.522000',
u'expires': u'2014-03-18T00:00:00',
u'expires': u'2013-09-11',
u'id': 3,
u'member': 2,
u'start_date': u'2013-09-11',
@@ -120,7 +122,7 @@ class MembershipTest(ResourceTestCase):
def expected_membership(self):
return {
u'created': u'2013-09-11T20:45:13.341000',
u'expires': u'2014-07-31T00:00:00',
u'expires': u'2013-09-11',
u'id': 1,
u'member': 2,
u'membership_type': 1,