fakeldap

Software skärmdump:
fakeldap
Mjukvaruinformation:
Version: 0.5.1
Ladda upp dagen: 11 May 15
Utvecklare: Christo Buschek
Licens: Gratis
Popularitet: 11

Rating: nan/5 (Total Votes: 0)

fakeldap är en Python-modul som ger ett enkelt sätt att håna LDAP backend-servrar för dina unittests. & Nbsp; Det gör det möjligt att definiera upfront en uppsättning katalogposter som kan efterfrågas eller som fasta värden återgång till LDAP-frågor. Det fungerar som en droppe i ersättning för LDAPObject klass python-ldap-modul. Den genomför en delmängd av de tillåtna metoder av denna klass.
Denna modul implementerar MockLDAP klass som fungerar både som den LDAPObject samt LDAP modulen. De flesta av koden och design har tagits från Peter Sagerson utmärkta django-auth-ldap-modul.
Installation
Få och installera koden:
& Nbsp; git clone git: //github.com/30loops/fakeldap.git
& Nbsp; cd fakeldap
& Nbsp; python setup.py installera
Om du vill kan du köra testerna:
& nbsp; python setup.py nosetests
Användning
Obs! Denna kod är fortfarande på experimentstadiet och inte särskilt testats i nuläget. Så är dokumentationen
Den MockLDAP klassen ersätter LDAPObject av python-ldap-modul. Det enklaste sättet att använda den, är att skriva ldap.initialize att återvända MockLDAP istället för LDAPObject. Exemplet nedan använder Michael Foord s Mock bibliotek för att uppnå detta:
import unittest
från mock import patch
från fakeldap import MockLDAP
_mock_ldap = MockLDAP ()
klass YourTestCase (unittest.TestCase):
& Nbsp; def Setup (egen):
& Nbsp; # Patch där ldap biblioteket används:
& 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 nedkoppling (egen):
& Nbsp; _mock_ldap.reset ()
& Nbsp; self.mock_ldap.stop ()
Den mock ldap objektet implementerar följande LDAP-operationer:
- Simple_bind_s
- search_s
- compare_s
- modify_s
- delete_s
- add_s
- rename_s
Detta är ett exempel på hur du använder MockLDAP med fasta värden retur:
def test_some_ldap_group_stuff (egen):
& Nbsp; # Definiera den förväntade avkastningen värdet för ldap drift
& Nbsp; return_value = ("cn = testgroup, ou = grupp, dc = 30loops, dc = netto", {
& Nbsp; 'object': ['posixGroup']
& Nbsp; "cn": "testgroup",
& Nbsp; "gidNumber ':' 2030 ',
& Nbsp;})
& Nbsp; # Jag vill registrera ett returvärde med MockLDAP objektet
& 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; # Kör din faktiska kod, detta är bara ett exempel
& Nbsp; group_manager = GroupManager ()
& Nbsp; resultat = group_manager.add ("testgroup")
& Nbsp; # hävda att returvärdet på din metod och MockLDAP
& Nbsp; # är som väntat, här med python-näsa EQ () testverktyg:
& Nbsp; eq_ (return_value, resultat)
& Nbsp; # Varje faktiska ldap ringa din programvara gör får registreras. Du kunde
& Nbsp; # upprätta en förteckning över samtal som du förväntar dig att utfärdas och jämföra det:
& nbsp; called_records = []
& Nbsp; called_records.append (("simple_bind_s",
& Nbsp; {"vem": "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; # Och återigen testa förväntat beteende
& Nbsp; eq_ (called_records, _mock_ldap.ldap_methods_called_with_arguments ())
Förutom att fastställa returvärden för specifika samtal, kan du också imitera en hel LDAP-server med en katalog på anmälningar:
# Skapa en instans av MockLDAP med en förinställd katalog
träd = {
& Nbsp; "cn = admin, dc = 30loops, dc = netto": {
& Nbsp; "userpassword": "ldaptest"
& Nbsp;}
}
mock_ldap = MockLDAP (träd)
rekord = [
& Nbsp; ("uid", "Crito"),
& Nbsp; ("userpassword", "hemlig"),
]
# Returvärdet jag förväntar mig när jag lägga till en annan post i katalogen
eq_ (
& Nbsp; (105, [], 1, []),
& nbsp; mock_ldap.add_s ("uid = Crito, ou = folk, dc = 30loops, dc = netto", rekord)
)
# Den förväntade katalogen
katalog = {
& Nbsp; "cn = admin, dc = 30loops, dc = netto": {"userpassword": "ldaptest"},
& Nbsp; "uid = Crito, ou = folk, dc = 30loops, dc = net": {
& Nbsp; "uid": "Crito", "userpassword": "hemlig"}
}
# Jämför den förväntade katalogen med MockLDAP katalogen
eq_ (katalog, mock_ldap.directory)

Krav :

  • Python

Liknande mjukvara

gunit-hildon
gunit-hildon

3 Jun 15

DREAM Tool
DREAM Tool

3 Jun 15

tl.testing
tl.testing

15 Apr 15

Kommentarer till fakeldap

Kommentarer hittades inte
Kommentar
Slå på bilder!