fakeldap

Software screenshot:
fakeldap
Rincian Software:
Versi: 0.5.1
Tanggal Upload: 11 May 15
Pengembang: Christo Buschek
Lisensi: Gratis
Popularitas: 11

Rating: nan/5 (Total Votes: 0)

fakeldap adalah modul Python yang menyediakan cara sederhana untuk mengejek server LDAP backend untuk unittests Anda & nbsp;. Ini memungkinkan untuk menentukan dimuka satu set entri direktori yang dapat dilihat atau diatur kembali nilai-nilai tetap untuk LDAP query. Ini bertindak sebagai penurunan pengganti kelas LDAPObject dari modul python-ldap. Menerapkan bagian dari metode diperbolehkan kelas ini.
Modul ini mengimplementasikan kelas MockLDAP yang berfungsi baik sebagai LDAPObject serta modul ldap. Sebagian besar kode dan desain telah diambil dari sangat baik modul Django-auth-ldap Peter Sagerson ini.
Instalasi
Dapatkan dan menginstal kode:
& Nbsp; git clone git: //github.com/30loops/fakeldap.git
& Nbsp; cd fakeldap
& Nbsp; python setup.py menginstal
Jika Anda ingin, Anda dapat menjalankan tes:
& Nbsp; nosetests python setup.py
Penggunaan
Catatan: Kode ini masih eksperimental dan tidak sangat diuji seperti yang belum. Jadi adalah dokumentasi
The MockLDAP kelas menggantikan LDAPObject dari modul python-ldap. Cara termudah untuk menggunakannya, adalah untuk menimpa ldap.initialize untuk kembali MockLDAP bukan LDAPObject. Contoh di bawah ini menggunakan library Mock Michael Foord untuk mencapai itu:
impor unittest
dari mock Patch impor
dari fakeldap impor MockLDAP
_mock_ldap = MockLDAP ()
kelas YourTestCase (unittest.TestCase):
& Nbsp; def setup (self):
& Nbsp; # patch mana perpustakaan ldap digunakan:
& 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 (self):
& Nbsp; _mock_ldap.reset ()
& Nbsp; self.mock_ldap.stop ()
Objek ldap mock mengimplementasikan operasi ldap berikut:
- Simple_bind_s
- Search_s
- Compare_s
- Modify_s
- Delete_s
- Add_s
- Rename_s
Ini adalah contoh bagaimana menggunakan MockLDAP dengan kembali nilai-nilai yang tetap:
def test_some_ldap_group_stuff (self):
& Nbsp; # Tentukan nilai pengembalian yang diharapkan untuk operasi ldap
& Nbsp; return_value = ("cn = testgroup, ou = kelompok, dc = 30loops, dc = net", {
& Nbsp; 'objectClass': ['posixGroup'],
& Nbsp; 'cn': 'testgroup',
& Nbsp; 'gidNumber': '2030',
& Nbsp;})
& Nbsp; # Registrasi nilai kembali dengan objek MockLDAP
& Nbsp; _mock_ldap.set_return_value ('add_s',
& Nbsp; ("cn = testgroup, ou = kelompok, dc = 30loops, dc = net", (
& Nbsp; ('objectClass', ('posixGroup')),
& Nbsp; ('cn', 'testgroup'),
& Nbsp; ('gidNumber', '2030'))),
& Nbsp; (105, [], 10, []))
& Nbsp; # Jalankan kode Anda yang sebenarnya, ini hanya sebuah contoh
& Nbsp; group_manager = GroupManager ()
& Nbsp; hasil = group_manager.add ("testgroup")
& Nbsp; # menegaskan bahwa nilai kembali metode dan dari MockLDAP
& Nbsp; # seperti yang diharapkan, di sini menggunakan eq () alat uji python-hidung ini:
& Nbsp; eq_ (return_value, hasil)
& Nbsp; # Setiap ldap sebenarnya memanggil perangkat lunak Anda membuat akan direkam. Anda bisa
& Nbsp; # menyiapkan daftar panggilan yang Anda harapkan akan diterbitkan dan membandingkannya:
& Nbsp; called_records = []
& Nbsp; called_records.append (('simple_bind_s',
& Nbsp; {'yang': 'cn = admin, dc = 30loops, dc = net', 'kredibilitas': 'ldaptest'}))
& Nbsp; called_records.append (('add_s', {
& Nbsp; 'dn': 'cn = testgroup, ou = kelompok, dc = 30loops, dc = net ",
& Nbsp; 'record': [
& Nbsp; ('objectClass', ['posixGroup']),
& Nbsp; ('gidNumber', '2030'),
& Nbsp; ('cn', 'testgroup'),
& Nbsp;]}))
& Nbsp; # Dan lagi menguji perilaku yang diharapkan
& Nbsp; eq_ (called_records, _mock_ldap.ldap_methods_called_with_arguments ())
Selain memperbaiki nilai kembali untuk panggilan tertentu, Anda juga bisa meniru server ldap penuh dengan direktori entri:
# Buat instance dari MockLDAP dengan direktori yang telah ditetapkan
Pohon = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {
& Nbsp; "userPassword": "ldaptest"
& Nbsp;}
}
mock_ldap = MockLDAP (pohon)
record = [
& Nbsp; ('uid', 'Crito'),
& Nbsp; ('userPassword', 'rahasia'),
]
# Nilai kembali saya berharap ketika saya menambahkan catatan lain ke direktori
eq_ (
& Nbsp; (105, [], 1, []),
& Nbsp; mock_ldap.add_s ("uid = Crito, ou = orang, dc = 30loops, dc = net", catatan)
)
# Direktori diharapkan
directory = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {"userPassword": "ldaptest"},
& Nbsp; "uid = Crito, ou = orang, dc = 30loops, dc = net": {
& Nbsp; "uid": "Crito", "userPassword": "rahasia"}
}
# Bandingkan direktori diharapkan dengan direktori MockLDAP
eq_ (direktori, mock_ldap.directory)

Persyaratan :

  • Python

Software yang serupa

nose2-cov
nose2-cov

14 Apr 15

testosterone
testosterone

14 Apr 15

lava-test
lava-test

20 Feb 15

lava-vcs
lava-vcs

14 Apr 15

Komentar untuk fakeldap

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!