Merge branch 'master' of charybde.crans.org:/git/ldap
This commit is contained in:
commit
cda292dcdb
4 changed files with 31 additions and 88 deletions
|
@ -59,7 +59,7 @@ sys.path.append('/usr/scripts/gestion')
|
||||||
import config
|
import config
|
||||||
import crans_utils
|
import crans_utils
|
||||||
import attributs
|
import attributs
|
||||||
from ldap_locks import CransLock
|
import ldap_locks
|
||||||
|
|
||||||
uri = 'ldap://ldap.adm.crans.org/'
|
uri = 'ldap://ldap.adm.crans.org/'
|
||||||
base_dn = 'ou=data,dc=crans,dc=org'
|
base_dn = 'ou=data,dc=crans,dc=org'
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# LC_LDAP_TESTS.PY-- Tests sur les fonctions lc_ldap.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2010 Cr@ns <roots@crans.org>
|
|
||||||
# Author: Nicolas Dandrimont <olasd@crans.org>
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of the Cr@ns nor the names of its contributors may
|
|
||||||
# be used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT
|
|
||||||
# HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from lc_ldap import attrify, lc_ldap_test
|
|
||||||
|
|
||||||
class LDAPTest(unittest.TestCase):
|
|
||||||
"""Classe de base pour les tests nécessitant la base LDAP"""
|
|
||||||
def setUp(self):
|
|
||||||
"""Déclare une connexion à la base LDAP de tests"""
|
|
||||||
self.ldap = lc_ldap_test()
|
|
||||||
|
|
||||||
def attrify_light(self, val, champ):
|
|
||||||
"""Transforme une valeur en objet Attr avec un LDIF minimaliste"""
|
|
||||||
return attrify(val, champ, {champ: [val]}, self.ldap)
|
|
||||||
|
|
||||||
class AdherentTest(LDAPTest):
|
|
||||||
"""Classe de test de la création d'un adhérent"""
|
|
||||||
tests = ["creationAdherent", "creationCompte"]
|
|
||||||
|
|
||||||
def creationAdherent(self):
|
|
||||||
"""Crée un adhérent"""
|
|
||||||
self.adherent = self.ldap.newAdherent({
|
|
||||||
'nom': [u"Passoir"],
|
|
||||||
'prenom': [u"Toto"],
|
|
||||||
'tel': [u"01 23 45 67 89"],
|
|
||||||
'chbre': [u"G001"],
|
|
||||||
'mail': [u"dave.null@toto.example"],
|
|
||||||
})
|
|
||||||
self.ldap.delete_s(self.adherent.dn)
|
|
||||||
|
|
||||||
def creationCompte(self):
|
|
||||||
self.adherent = self.ldap.newAdherent({
|
|
||||||
'nom' : [u'McLellan'],
|
|
||||||
'prenom' : [u'Stue'],
|
|
||||||
'tel': [u'01 47 51 00 00'],
|
|
||||||
'chbre': [u"G001"],
|
|
||||||
'mail': [u'nobody@nowhere.example'],
|
|
||||||
})
|
|
||||||
self.adherent.compte(u'mclellan')
|
|
||||||
self.ldap.delete_s(self.adherent.dn)
|
|
||||||
|
|
||||||
|
|
||||||
def auto_suite(testcase):
|
|
||||||
"""Suite de tests 'automatique'"""
|
|
||||||
suite = unittest.TestSuite()
|
|
||||||
for test in testcase.tests:
|
|
||||||
suite.addTest(testcase(test))
|
|
||||||
return suite
|
|
||||||
|
|
||||||
TEST_SUITE = unittest.TestSuite((
|
|
||||||
auto_suite(AdherentTest),
|
|
||||||
))
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
RUNNER = unittest.TextTestRunner()
|
|
||||||
RUNNER.run(TEST_SUITE)
|
|
2
tools/b64decode/.gitignore
vendored
Normal file
2
tools/b64decode/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
*.ldif
|
||||||
|
*.b64decoded
|
28
tools/b64decode/base64decode.py
Executable file
28
tools/b64decode/base64decode.py
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
""" Affiche en human readable un ldif (de slapcat, par exemple)
|
||||||
|
en décodant les parties en base64 """
|
||||||
|
|
||||||
|
import re
|
||||||
|
import base64
|
||||||
|
import sys
|
||||||
|
|
||||||
|
regexp = re.compile("(?P<cle>[A-Za-z]*):: (?P<valeur>(?:[A-Za-z0-9/+]*(?:\n )?)*={0,3})")
|
||||||
|
|
||||||
|
def remplace(objet):
|
||||||
|
groups = objet.groupdict()
|
||||||
|
return "%s: %s" % (groups["cle"], base64.b64decode(groups["valeur"]))
|
||||||
|
|
||||||
|
|
||||||
|
def perform(texte):
|
||||||
|
return re.sub(regexp, remplace, texte)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
filename = sys.argv[1]
|
||||||
|
with open(filename) as f:
|
||||||
|
texte = f.read()
|
||||||
|
with open(filename + ".b64decoded", "w") as g:
|
||||||
|
g.write(perform(texte).replace("\n ", ""))
|
||||||
|
print "Done :)"
|
Loading…
Add table
Add a link
Reference in a new issue