|
@@ -1,16 +1,91 @@
|
|
|
-"""
|
|
|
-This file demonstrates writing tests using the unittest module. These will pass
|
|
|
-when you run "manage.py test".
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+import os
|
|
|
+from django.test import TestCase, Client
|
|
|
+from coin.members.models import Member, LdapUser
|
|
|
+import logging
|
|
|
|
|
|
-Replace this with more appropriate tests for your application.
|
|
|
-"""
|
|
|
+logger = logging.getLogger('fabs')
|
|
|
|
|
|
-from django.test import TestCase
|
|
|
-
|
|
|
-
|
|
|
-class SimpleTest(TestCase):
|
|
|
- def test_basic_addition(self):
|
|
|
+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
|
|
|
"""
|
|
|
- Tests that 1 + 1 always equals 2.
|
|
|
+ #~ 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):
|
|
|
"""
|
|
|
- self.assertEqual(1 + 1, 2)
|
|
|
+ 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()
|
|
|
+ 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');
|