Browse Source

Add test to check creating member add corresponding ldap user in "coin" LDAP group
And deleting member remove the corresponding LDAP user from "coin" LDAP group

Fabs 11 years ago
parent
commit
fde5f08655
1 changed files with 32 additions and 4 deletions
  1. 32 4
      coin/members/tests.py

+ 32 - 4
coin/members/tests.py

@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 import os
 from django.test import TestCase, Client
-from coin.members.models import Member, LdapUser
+from coin.members.models import Member, LdapUser, LdapGroup
 import logging
 
 logger = logging.getLogger('fabs')
@@ -11,8 +11,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éer dans le LDAP et qu'elle contient 
-        les même données.
+        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
         """
         #~ Créé un membre
@@ -64,6 +64,31 @@ class MemberTests(TestCase):
         member.delete();
         ldap_user.delete();
     
+    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 
+        est bien retiré du groupe.
+        """
+        #~ Créé un membre
+        ldap_cn =  self.get_random_ldap_cn()
+        member = Member(first_name = 'Canard', last_name = 'WC', ldap_cn = ldap_cn)
+        member.save()
+        
+        #~ Récupère le group "coin" et test que l'utilisateur y est présent
+        ldap_group = LdapGroup.objects.get(pk="coin")
+        self.assertEqual(ldap_cn in ldap_group.members, True)
+        
+        #~ Supprime l'utilisateur
+        member.delete();
+        
+        #~ Récupère le group "coin" et test que l'utilisateur n'y est plus
+        ldap_group = LdapGroup.objects.get(pk="coin")
+        self.assertEqual(ldap_cn in ldap_group.members, False)
+        
+        LdapUser.objects.get(pk=ldap_cn).delete();
+
+
     def test_change_password_and_auth(self):
         """
         Test que la fonction change_password de member fonctionne et permet
@@ -88,6 +113,9 @@ class MemberTests(TestCase):
         
         member.delete();
         ldap_user.delete();
-        
+
     def get_random_ldap_cn(self):
+        """
+        Renvoi une clé aléatoire pour un utilisateur LDAP
+        """
         return 'coin_test_' + os.urandom(8).encode('hex');