Browse Source

Test member end_date_of_membership and is_paid_up

Fabs 11 years ago
parent
commit
fa4d1d4315
2 changed files with 74 additions and 9 deletions
  1. 0 1
      coin/members/models.py
  2. 74 8
      coin/members/tests.py

+ 0 - 1
coin/members/models.py

@@ -84,7 +84,6 @@ class Member(CoinLdapSyncModel):
         """
         True si le membre est à jour de cotisation. False sinon
         """
-        print self.end_date_of_membership()
         if (self.end_date_of_membership()
             and self.end_date_of_membership() >= datetime.date.today()):
                 return True

+ 74 - 8
coin/members/tests.py

@@ -1,9 +1,10 @@
 # -*- coding: utf-8 -*-
 import os
+import datetime
 from django import db
 from django.test import TestCase, Client
 from django.contrib.auth.models import User
-from coin.members.models import Member, LdapUser, LdapGroup
+from coin.members.models import Member, MembershipFee, LdapUser, LdapGroup
 import logging
 import ldapdb
 from pprint import pprint
@@ -13,8 +14,8 @@ class MemberTests(TestCase):
 
     def test_when_creating_member_a_ldapuser_is_also_created_with_same_data(self):
         """
-        Test que lors de la création d'un nouveau membre, une entrée 
-        correspondante est bien créée dans le LDAP et qu'elle contient 
+        Test que lors de la création d'un nouveau membre, une entrée
+        correspondante est bien créée dans le LDAP et qu'elle contient
         les mêmes données.
         Cela concerne le nom et le prénom
         """
@@ -40,7 +41,7 @@ class MemberTests(TestCase):
 
     def test_when_modifiying_member_corresponding_ldap_user_is_also_modified_with_same_data(self):
         """
-        Test que lorsque l'on modifie un membre, l'utilisateur LDAP 
+        Test que lorsque l'on modifie un membre, l'utilisateur LDAP
         correspondant est bien modifié
         Cela concerne le no met le prénom
         """
@@ -71,7 +72,7 @@ class MemberTests(TestCase):
     def test_when_creating_member_corresponding_ldap_user_is_in_coin_ldap_group(self):
         """
         Test que l'utilisateur Ldap fraichement créé est bien dans le group "coin"
-        Et que lors de la supression d'un membre, l'utilisateur LDAP correspondant 
+        Et que lors de la supression d'un membre, l'utilisateur LDAP correspondant
         est bien retiré du groupe.
         """
         #~ Créé un membre
@@ -121,7 +122,7 @@ class MemberTests(TestCase):
 
     def test_when_creating_member_ldap_display_name_is_well_defined(self):
         """
-        Lors de la création d'un membre, le champ "display_name" du LDAP est 
+        Lors de la création d'un membre, le champ "display_name" du LDAP est
         prenom + nom
         """
         first_name = u'Gérard'
@@ -142,9 +143,9 @@ class MemberTests(TestCase):
 
     def test_when_creating_member_ldap_cn_is_well_defined(self):
         """
-        Lors de la création d'un membre, le champ "ldap_cn", s'il n'est pas 
+        Lors de la création d'un membre, le champ "ldap_cn", s'il n'est pas
         définit doit être généré avec les contraintes suivantes :
-        premières lettres du prénom + nom le tout en minuscule, 
+        premières lettres du prénom + nom le tout en minuscule,
         sans caractères accentués et sans espaces.
         """
         random = os.urandom(4).encode('hex')
@@ -221,6 +222,71 @@ class MemberTests(TestCase):
         member = Member.objects.get(ldap_cn=ldap_cn)
         self.assertIsNotNone(member.user)
 
+        LdapUser.objects.get(pk=member.ldap_cn).delete()
+
+    def test_member_end_date_of_memberhip(self):
+        """
+        Test que end_date_of_membership d'un membre envoi bien la date de fin d'adhésion
+        """
+        #Créer un membre
+        first_name = u'Tin'
+        last_name = u'Tin'
+        ldap_cn = MemberTestsUtils.get_random_ldap_cn()
+        member = Member(first_name=first_name,
+                        last_name=last_name, ldap_cn=ldap_cn)
+        member.save()
+
+        start_date = datetime.date.today()
+        end_date = start_date + datetime.timedelta(365)
+
+        #Créé une cotisation
+        membershipfee = MembershipFee(member=member, amount=20,
+            start_date=start_date,
+            end_date=end_date)
+        membershipfee.save()
+
+        self.assertEqual(member.end_date_of_membership(), end_date)
+
+        LdapUser.objects.get(pk=member.ldap_cn).delete()
+
+    def test_member_is_paid_up(self):
+        """
+        Test que end_date_of_membership d'un membre envoi bien la date de fin d'adhésion
+        """
+        #Créé un membre
+        first_name = u'Capitain'
+        last_name = u'Haddock'
+        ldap_cn = MemberTestsUtils.get_random_ldap_cn()
+        member = Member(first_name=first_name,
+                        last_name=last_name, ldap_cn=ldap_cn)
+        member.save()
+
+        start_date = datetime.date.today()
+        end_date = start_date + datetime.timedelta(365)
+
+        # Test qu'un membre sans cotisation n'est pas à jour
+        self.assertEqual(member.is_paid_up(), False)
+
+        #Créé une cotisation passée
+        membershipfee = MembershipFee(member=member, amount=20,
+            start_date=datetime.date.today() - datetime.timedelta(365),
+            end_date=datetime.date.today() - datetime.timedelta(10))
+        membershipfee.save()
+        # La cotisation s'étant terminée il y a 10 jours, il ne devrait pas
+        # être à jour de cotistion
+        self.assertEqual(member.is_paid_up(), False)
+
+        #Créé une cotisation actuelle
+        membershipfee = MembershipFee(member=member, amount=20,
+            start_date=datetime.date.today() - datetime.timedelta(10),
+            end_date=datetime.date.today() + datetime.timedelta(10))
+        membershipfee.save()
+        # La cotisation se terminant dans 10 jour, il devrait être à jour
+        # de cotisation
+        self.assertEqual(member.is_paid_up(), True)
+
+        LdapUser.objects.get(pk=member.ldap_cn).delete()
+
 
 class MemberAdminTests(TestCase):