Archived
Tests working as intended, it seems the failing tests actually fail
This commit is contained in:
1 parent
ff13f00c2b
commit
08ffe4b2f3
3 files changed
+39
-29
No files matched your search
@@ -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
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user