fakeldap

Screenshot Software:
fakeldap
Szczegóły programowe:
Wersja: 0.5.1
Filmu: 11 May 15
Wywoływacz: Christo Buschek
Licencja: Wolny
Popularność: 11

Rating: nan/5 (Total Votes: 0)

fakeldap to moduł Pythona, który zapewnia prosty sposób na backend serwerów LDAP Mock dla unittests. & Nbsp; To pozwala z góry zdefiniować zestaw pozycji katalogu, który można przeszukiwać lub określonych wartości środków zwracanych LDAP zapytania. Działa jako spadek zamiennik klasy LDAPObject modułu python-ldap. Wprowadza podzbiór dopuszczalnych metod tej klasy.
Moduł ten klasę MockLDAP który funkcjonuje zarówno jako LDAPObject oraz moduł ldap. Większość kodu i projektu zostały zaczerpnięte z doskonałego modułu django-auth-ldap Peter Sagerson jest.
instalacji
Pobierz i zainstaluj kod:
& Nbsp; git clone git: //github.com/30loops/fakeldap.git
& Nbsp; cd fakeldap
& Nbsp; python setup.py install
Jeśli chcesz, możesz uruchomić testy:
& nbsp; nosetests python setup.py
Zastosowanie
Uwaga: Ten kod jest wciąż eksperymentalna i nie bardzo Testowany jeszcze. Więc jest dokumentacja
Klasa MockLDAP zastępuje LDAPObject modułu python-ldap. Najprostszym sposobem, aby go używać, jest nadpisanie ldap.initialize powrotu MockLDAP zamiast LDAPObject. Przykład poniżej wykorzystuje bibliotekę Michaela Foord Mock do osiągnięcia tego celu:
import unittest
import z udawanym poprawki
z fakeldap importu MockLDAP
_mock_ldap = MockLDAP ()
Klasa YourTestCase (unittest.TestCase):
& Nbsp; def setup (self):
& Nbsp; # patch, gdzie jest używana biblioteka LDAP:
& Nbsp; self.ldap_patcher = plaster ("app.module.ldap.initialize")
& Nbsp; self.mock_ldap = self.ldap_patcher.start ()
& Nbsp; self.mock_ldap.return_value = _mock_ldap
& Nbsp; def przerywaniem (self):
& Nbsp; _mock_ldap.reset ()
& Nbsp; self.mock_ldap.stop ()
Makiety obiektu ldap realizuje następujące operacje LDAP:
- Simple_bind_s
- search_s
- compare_s
- modify_s
- delete_s
- add_s
- rename_s
To jest przykład jak używać MockLDAP zwrotu z wartościami stałymi:
test_some_ldap_group_stuff def (self):
& Nbsp; # Określenie wartości oczekiwanej powrotu dla operacji LDAP
& Nbsp; Return_Value = ("cn = testgroup, ou = grupa, dc = 30loops, dc = net", {
& Nbsp; "objectClass": ["posixGroup"],
& Nbsp; "cn": "testgroup",
& Nbsp; "gidNumber ':' 2030 ',
& Nbsp;})
& Nbsp; # Zarejestruj zwraca wartości z obiektu MockLDAP
& Nbsp; _mock_ldap.set_return_value ("add_s",
& Nbsp; ("cn = testgroup, ou = grupy, dc = 30loops, dc = net", (
& Nbsp; ("objectClass", ("posixGroup ')),
& Nbsp; ("cn", "testgroup"),
& Nbsp; ("gidNumber ',' 2030 '))),
& Nbsp, (105, [], 10 []))
& Nbsp; # Uruchom rzeczywisty kod, jest to tylko przykład
& Nbsp; group_manager = GroupManager ()
& Nbsp; wynik = group_manager.add ("testgroup")
& Nbsp; # twierdzą, że wartość zwracana przez metodę i MockLDAP
& Nbsp; # są zgodnie z oczekiwaniami, tutaj używając eq () narzędzie testowe python-nosa na:
& Nbsp; eq_ (Return_Value, wynik)
& Nbsp; # Każda rzeczywista ldap zadzwonić oprogramowanie sprawia, że ​​nie zostanie zapisane. Mógłbyś
& Nbsp; # przygotować listę połączeń, które można oczekiwać, aby być wydawane i porównać go:
& nbsp; called_records = []
& Nbsp; called_records.append (('simple_bind_s ",
& Nbsp; {"kto": "cn = admin, dc = 30loops, dc = net", "cred": "ldaptest '}))
& Nbsp; called_records.append (("", {add_s
& Nbsp; "dn": "cn = testgroup, ou = grupy, dc = 30loops, dc = net",
& Nbsp; "rekord": [
& Nbsp; ("objectClass", ["posixGroup ']),
& Nbsp; ("gidNumber", "2030"),
& Nbsp; ("cn", "testgroup"),
& Nbsp;]}))
& Nbsp; # I znowu przetestować oczekiwane zachowanie
& Nbsp; eq_ (called_records, _mock_ldap.ldap_methods_called_with_arguments ())
Oprócz ustalania wartości zwracanych dla konkretnych połączeń, można także naśladować pełny serwer LDAP z katalogu wpisów:
# Tworzenie instancji MockLDAP z zadanym katalogu
drzewa = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {
& Nbsp; "userPassword": "ldaptest"
& Nbsp;}
}
mock_ldap = MockLDAP (drzewo)
Rekord = [
& Nbsp; ('uid', 'Crito "),
& Nbsp; ("userPassword", "tajne"),
]
# Wartość zwracana Spodziewam kiedy dodać kolejny rekord do katalogu
eq_ (
& Nbsp, (105, [], 1, []),
& nbsp; mock_ldap.add_s ("uid = Crito, ou = ludzie, dc = 30loops, dc = net", rekord)
)
# Oczekiwany katalog
directory = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {"userPassword": "ldaptest"},
& Nbsp; "uid = Crito, ou = ludzie, dc = 30loops, dc = net": {
& Nbsp; "uid": "Crito", "userPassword": "tajne"}
}
# Porównaj oczekiwaną katalogu z katalogu MockLDAP
eq_ (katalog, mock_ldap.directory)

Wymagania :

  • Python

Podobne oprogramowanie

searchtester
searchtester

12 May 15

NoseDBReport
NoseDBReport

20 Feb 15

pyVows
pyVows

20 Feb 15

Komentarze do fakeldap

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!