fakeldap

Tela Software:
fakeldap
Detalhes de Software:
Versão: 0.5.1
Data de upload: 11 May 15
Revelador: Christo Buschek
Licença: Livre
Popularidade: 11

Rating: nan/5 (Total Votes: 0)

fakeldap é um módulo Python que fornece uma maneira simples de zombar servidores back-end LDAP para seus UnitTests & nbsp;. Isso torna possível definir antecipadamente um conjunto de entradas de diretório que podem ser consultados ou definir valores de retorno fixa para o LDAP consultas. Ele atua como uma gota de substituição para a classe LDAPObject do módulo python-ldap. Ele implementa um subconjunto dos métodos autorizados desta classe.
Este módulo implementa o classe MockLDAP que funciona não só como o LDAPObject, bem como o módulo LDAP. A maior parte do código e design foi tomado de excelente módulo django-auth-ldap de Pedro Sagerson.
Instalação
Obter e instalar o código:
& Nbsp; git clone git: //github.com/30loops/fakeldap.git
& Nbsp; cd fakeldap
& Nbsp; python setup.py install
Se você quiser, você pode executar os testes:
& nbsp; nosetests python setup.py
Uso
Nota: Este código ainda é experimental e não muito testado até o momento. Assim é a documentação
A classe MockLDAP substitui o LDAPObject do módulo python-ldap. A maneira mais fácil de usá-lo, é substituir ldap.initialize para retornar MockLDAP em vez de LDAPObject. O exemplo abaixo utiliza a biblioteca de Michael Mock Foord para conseguir que:
unittest importação
de simulação remendo de importação
de fakeldap MockLDAP importação
_mock_ldap = MockLDAP ()
classe YourTestCase (unittest.TestCase):
& Nbsp; setUp def (self):
& Nbsp; # patch onde a biblioteca ldap é usado:
& 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; tearDown def (self):
& Nbsp; _mock_ldap.reset ()
& Nbsp; self.mock_ldap.stop ()
O objeto ldap simulada implementa as seguintes operações LDAP:
- Simple_bind_s
- search_s
- compare_s
- modify_s
- delete_s
- add_s
- rename_s
Este é um exemplo de como usar MockLDAP com valores de retorno fixo:
test_some_ldap_group_stuff def (self):
& Nbsp; # Define o valor de retorno esperado para a operação ldap
& Nbsp; return_value = ("cn = TestGroup, ou = grupo, dc = 30loops, dc = net", {
& Nbsp; 'objectClass': ['PosixGroup'],
& Nbsp; 'cn': 'TestGroup',
& Nbsp; 'gidNumber': '2030',
& Nbsp;})
& Nbsp; # Registrar um valor de retorno com o objeto MockLDAP
& Nbsp; _mock_ldap.set_return_value ('add_s',
& Nbsp; ("cn = TestGroup, ou = grupos, dc = 30loops, dc = net", (
& Nbsp; ('objectClass', ('PosixGroup')),
& Nbsp; ('cn', 'TestGroup'),
& Nbsp; ('gidNumber', '2030'))),
& Nbsp; (105, [], 10, []))
& Nbsp; # Execute seu código real, este é apenas um exemplo
& Nbsp; group_manager = GroupManager ()
& Nbsp; result = group_manager.add ("TestGroup")
& Nbsp; # afirmar que o valor de retorno do seu método e do MockLDAP
& Nbsp; # são os esperados, aqui usando eq () ferramenta de teste de python-nariz:
& Nbsp; eq_ (return_value, resultado)
& Nbsp; # Cada ldap real chamar o seu software faz fica gravado. Você podia
& Nbsp; # preparar uma lista de chamadas que você espera para ser emitido e compará-lo:
& nbsp; called_records = []
& Nbsp; called_records.append (('simple_bind_s',
& Nbsp; {"quem": "cn = admin, dc = 30loops, dc = net", "cred": "ldaptest '}))
& Nbsp; called_records.append (('add_s ", {
& Nbsp; 'dn': 'cn = TestGroup, ou = grupos, dc = 30loops, dc = net ",
& Nbsp; 'record': [
& Nbsp; ('objectClass', ['PosixGroup']),
& Nbsp; ('gidNumber', '2030'),
& Nbsp; ('cn', 'TestGroup'),
& Nbsp;]}))
& Nbsp; # E novamente testar o comportamento esperado
& Nbsp; eq_ (called_records, _mock_ldap.ldap_methods_called_with_arguments ())
Além de fixar valores de retorno para chamadas específicas, você também pode imitar um servidor ldap completo com um diretório de entradas:
# Criar uma instância de MockLDAP com um diretório predefinido
tree = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {
& Nbsp; "userPassword": "ldaptest"
& Nbsp;}
}
mock_ldap = MockLDAP (árvore)
record = [
& Nbsp; ('uid', 'Críton'),
& Nbsp; ('userPassword', 'secreta'),
]
# O valor de retorno Espero que quando eu adiciono um novo recorde para o diretório
eq_ (
& Nbsp; (105, [], 1, []),
& nbsp; mock_ldap.add_s ("uid = Críton, ou = pessoas, dc = 30loops, dc = net", ficha)
)
# O diretório esperado
diretório = {
& Nbsp; "cn = admin, dc = 30loops, dc = net": {"userPassword": "ldaptest"},
& Nbsp; "uid = Críton, ou = pessoas, dc = 30loops, dc = net": {
& Nbsp; "uid": "Críton", "userPassword": "segredo"}
}
# Compare o diretório esperado com o diretório MockLDAP
eq_ (diretório, mock_ldap.directory)

Requisitos :

  • Python

Programas semelhantes

searchtester
searchtester

12 May 15

lava-fastmodels
lava-fastmodels

14 Apr 15

gar
gar

11 May 15

Comentário para fakeldap

Comentários não encontrado
Adicionar comentário
Ligue imagens!