fakeldap

Skjermbilde programvare:
fakeldap
Prog.varedetaljer:
Versjon: 0.5.1
Last opp dato: 11 May 15
Utvikler: Christo Buschek
Lisens: Gratis
Popularitet: 93

Rating: 3.0/5 (Total Votes: 1)

fakeldap er et Python-modul som gir en enkel måte å spotte LDAP backend-servere for dine unittests. & Nbsp; Det gjør det mulig å definere på forhånd et sett av katalogoppføringer som kan spørres eller satt fast avkastning verdier til LDAP-spørringer. Det fungerer som en dråpe i erstatning for LDAPObject klassen av python-ldap modulen. Det implementerer en undergruppe av de tillatte metodene for denne klassen.
Denne modulen implementerer MockLDAP klassen som fungerer både som LDAPObject samt LDAP-modulen. Mesteparten av kode og design har blitt tatt fra Peter Sagerson utmerkede django-auth-ldap modulen.
Installasjon
Få og installere koden:
& Nbsp; git clone git: //github.com/30loops/fakeldap.git
& Nbsp; cd fakeldap
& Nbsp; python setup.py installere
Hvis du vil, kan du kjøre testene:
& nbsp; python setup.py nosetests
Bruk
Merk: Denne koden er fortsatt eksperimentell og ikke veldig testet som foreløpig. Så er dokumentasjonen
Den MockLDAP klassen erstatter LDAPObject av python-ldap modulen. Den enkleste måten å bruke det, er å overskrive ldap.initialize å returnere MockLDAP stedet for LDAPObject. Eksempelet nedenfor bruker Michael Foord sin Mock biblioteket for å oppnå dette:
import unittest
fra mock import patch
fra fakeldap import MockLDAP
_mock_ldap = MockLDAP ()
klasse YourTestCase (unittest.TestCase):
& Nbsp; def Setup (egen-):
& Nbsp; # Patch der ldap biblioteket brukes:
& Nbsp; self.ldap_patcher = patch ('app.module.ldap.initialize')
& Nbsp; self.mock_ldap = self.ldap_patcher.start ()
& Nbsp; self.mock_ldap.return_value = _mock_ldap
& Nbsp; def Teardown (egen-):
& Nbsp; _mock_ldap.reset ()
& Nbsp; self.mock_ldap.stop ()
Håne ldap objektet implementerer følgende ldap operasjoner:
- Simple_bind_s
- search_s
- compare_s
- modify_s
- delete_s
- add_s
- rename_s
Dette er et eksempel hvordan du bruker MockLDAP med fast avkastning verdier:
def test_some_ldap_group_stuff (egen-):
& Nbsp; # Definer den forventede avkastningen verdi for ldap drift
& Nbsp; return_value = ("cn = testgroup, ou = gruppe, dc = 30loops, dc = net", {
& Nbsp; 'object': ['posixGroup'],
& Nbsp; 'cn': 'testgroup',
& Nbsp; 'gidNumber': '2030',
& Nbsp;})
& Nbsp; # Registrere en returverdi med MockLDAP objekt
& Nbsp; _mock_ldap.set_return_value ('add_s',
& Nbsp; ("cn = testgroup, ou = grupper, dc = 30loops, dc = net", (
& Nbsp; ('object', ('posixGroup')),
& Nbsp; ('cn', 'testgroup'),
& Nbsp; ('gidNumber', '2030'))),
& Nbsp; (105, [], 10, []))
& Nbsp; # Kjør faktiske koden, dette er bare et eksempel
& Nbsp; group_manager = GroupManager ()
& Nbsp; resultat = group_manager.add ("testgroup")
& Nbsp; # hevde at avkastningen verdien av metode og av MockLDAP
& Nbsp; # er som forventet, her bruker python-nese sin eq () test verktøy:
& Nbsp; eq_ (return_value, resultat)
& Nbsp; # Hver faktiske ldap kaller programvaren gjør blir registrert. Du kan
& Nbsp; # utarbeide en liste over samtaler som du forventer å bli utstedt og sammenligne det:
& nbsp; called_records = []
& Nbsp; called_records.append (('simple_bind_s',
& Nbsp; {'hvem': 'cn = admin, dc = 30loops, dc = netto', 'cred': 'ldaptest'}))
& Nbsp; called_records.append (('add_s', {
& Nbsp; 'dn': 'cn = testgroup, ou = grupper, dc = 30loops, dc = net ",
& Nbsp; 'record': [
& Nbsp; ('object', ['posixGroup']),
& Nbsp; ('gidNumber', '2030'),
& Nbsp; ('cn', 'testgroup'),
& Nbsp;]}))
& Nbsp; # Og igjen teste forventet atferd
& Nbsp; eq_ (called_records, _mock_ldap.ldap_methods_called_with_arguments ())
Foruten å fikse returverdier for bestemte samtaler, kan du også imitere en full ldap server med en katalog av oppføringer:
# Lag en forekomst av MockLDAP med en forhåndsinnstilt katalog
treet = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {
& Nbsp; "user": "ldaptest"
& Nbsp;}
}
mock_ldap = MockLDAP (tre)
record = [
& Nbsp; ('uid', 'Crito'),
& Nbsp; ('user', 'hemmelige'),
]
# Returverdien jeg forvente når jeg legger en annen post til katalogen
eq_ (
& Nbsp; (105, [], 1, []),
& nbsp; mock_ldap.add_s ("uid = Crito, ou = folk, dc = 30loops, dc = net", rekord)
)
# Den forventede katalog
directory = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {"user": "ldaptest"},
& Nbsp; "uid = Crito, ou = folk, dc = 30loops, dc = net": {
& Nbsp; "uid": "Crito", "user": "hemmelige"}
}
# Sammenligne forventet katalog med MockLDAP katalog
eq_ (katalog, mock_ldap.directory)

Krav

  • Python

Lignende programvare

pytest-incremental
pytest-incremental

12 May 15

AutobahnTestSuite
AutobahnTestSuite

20 Feb 15

PyZen
PyZen

12 May 15

NoseDBResult
NoseDBResult

11 May 15

Kommentarer til fakeldap

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!