12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # -*- coding: utf-8 -*-
- import os
- from django.test import TestCase, Client
- from coin.members.models import Member, LdapUser
- import logging
- logger = logging.getLogger('fabs')
- 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
- Cela concerne le nom et le prénom
- """
- #~ Créé un membre
- first_name = u'Gérard';
- last_name = u'Majax';
- ldap_cn = self.get_random_ldap_cn()
- member = Member(first_name = first_name,
- last_name = last_name,
- ldap_cn = ldap_cn)
- member.save()
-
- #~ Récupère l'utilisateur LDAP et fait les tests
- ldap_user = LdapUser.objects.get(pk=ldap_cn)
-
- self.assertEqual(ldap_user.first_name, first_name)
- self.assertEqual(ldap_user.last_name, last_name)
- self.assertEqual(ldap_user.pk, ldap_cn)
-
- member.delete();
- ldap_user.delete();
-
- 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 correspondant est bien modifié
- Cela concerne le no met le prénom
- """
- #~ Créé un membre
- first_name = u'Ronald';
- last_name = u'Mac Donald';
- ldap_cn = self.get_random_ldap_cn()
- member = Member(first_name = first_name, last_name = last_name, ldap_cn = ldap_cn)
- member.save()
-
- #~ Le modifie
- new_first_name = u'José';
- new_last_name = u'Bové';
- member.first_name = new_first_name
- member.last_name = new_last_name
- member.save()
-
- #~ Récupère l'utilisateur LDAP et fait les tests
- ldap_user = LdapUser.objects.get(pk=ldap_cn)
-
- self.assertEqual(ldap_user.first_name, new_first_name)
- self.assertEqual(ldap_user.last_name, new_last_name)
- member.delete();
- ldap_user.delete();
-
- def test_change_password_and_auth(self):
- ldap_cn = self.get_random_ldap_cn()
- password = "MotDePasseTest"
- logger.debug(ldap_cn)
- #~ Créé un membre
- member = Member(first_name = u'Passe-partout', last_name = u'Du fort Boyard', ldap_cn = ldap_cn)
-
- member.save()
- #~ Récupère l'utilisateur LDAP
- ldap_user = LdapUser.objects.get(pk=ldap_cn)
- #~ logger.debug('Ask member to change password');
-
- #~ Change son mot de passe
- member.change_password(password)
- #~ ldap_user.password = password
- #~ ldap_user.save()
- #~
- #~ Test l'authentification
- logger.debug(ldap_cn)
- c = Client()
-
- # TODO : Ce test échoue systématiquement, voir pourquoi
- # self.assertEqual(c.login(username=ldap_cn, password=password), True)
-
- member.delete();
- #~ ldap_user.delete();
-
- def get_random_ldap_cn(self):
- return 'coin_test_' + os.urandom(8).encode('hex');
|