tests.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # -*- coding: utf-8 -*-
  2. import os
  3. from django.test import TestCase, Client
  4. from coin.members.models import Member, LdapUser
  5. import logging
  6. logger = logging.getLogger('fabs')
  7. class MemberTests(TestCase):
  8. def test_when_creating_member_a_ldapuser_is_also_created_with_same_data(self):
  9. """
  10. 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
  11. Cela concerne le nom et le prénom
  12. """
  13. #~ Créé un membre
  14. first_name = u'Gérard';
  15. last_name = u'Majax';
  16. ldap_cn = self.get_random_ldap_cn()
  17. member = Member(first_name = first_name,
  18. last_name = last_name,
  19. ldap_cn = ldap_cn)
  20. member.save()
  21. #~ Récupère l'utilisateur LDAP et fait les tests
  22. ldap_user = LdapUser.objects.get(pk=ldap_cn)
  23. self.assertEqual(ldap_user.first_name, first_name)
  24. self.assertEqual(ldap_user.last_name, last_name)
  25. self.assertEqual(ldap_user.pk, ldap_cn)
  26. member.delete();
  27. ldap_user.delete();
  28. def test_when_modifiying_member_corresponding_ldap_user_is_also_modified_with_same_data(self):
  29. """
  30. Test que lorsque l'on modifie un membre, l'utilisateur LDAP correspondant est bien modifié
  31. Cela concerne le no met le prénom
  32. """
  33. #~ Créé un membre
  34. first_name = u'Ronald';
  35. last_name = u'Mac Donald';
  36. ldap_cn = self.get_random_ldap_cn()
  37. member = Member(first_name = first_name, last_name = last_name, ldap_cn = ldap_cn)
  38. member.save()
  39. #~ Le modifie
  40. new_first_name = u'José';
  41. new_last_name = u'Bové';
  42. member.first_name = new_first_name
  43. member.last_name = new_last_name
  44. member.save()
  45. #~ Récupère l'utilisateur LDAP et fait les tests
  46. ldap_user = LdapUser.objects.get(pk=ldap_cn)
  47. self.assertEqual(ldap_user.first_name, new_first_name)
  48. self.assertEqual(ldap_user.last_name, new_last_name)
  49. member.delete();
  50. ldap_user.delete();
  51. def test_change_password_and_auth(self):
  52. ldap_cn = self.get_random_ldap_cn()
  53. password = "MotDePasseTest"
  54. logger.debug(ldap_cn)
  55. #~ Créé un membre
  56. member = Member(first_name = u'Passe-partout', last_name = u'Du fort Boyard', ldap_cn = ldap_cn)
  57. member.save()
  58. #~ Récupère l'utilisateur LDAP
  59. ldap_user = LdapUser.objects.get(pk=ldap_cn)
  60. #~ logger.debug('Ask member to change password');
  61. #~ Change son mot de passe
  62. member.change_password(password)
  63. #~ ldap_user.password = password
  64. #~ ldap_user.save()
  65. #~
  66. #~ Test l'authentification
  67. logger.debug(ldap_cn)
  68. c = Client()
  69. # TODO : Ce test échoue systématiquement, voir pourquoi
  70. # self.assertEqual(c.login(username=ldap_cn, password=password), True)
  71. member.delete();
  72. #~ ldap_user.delete();
  73. def get_random_ldap_cn(self):
  74. return 'coin_test_' + os.urandom(8).encode('hex');