Exemplo n.º 1
0
def test_query_ldap_bad_filter(mocker):
    from ldap2pg.manager import SyncManager, LDAPError, UserError

    manager = SyncManager(ldapconn=mocker.Mock())
    manager.ldapconn.search_s.side_effect = LDAPError()

    with pytest.raises(UserError):
        manager.query_ldap(
            base='dc=unit', filter='(broken', scope=2, attributes=[],
        )

    assert manager.ldapconn.search_s.called is True
Exemplo n.º 2
0
def test_query_ldap_joins_ignore_error(mocker):
    from ldap2pg.manager import SyncManager, LDAPError

    search_result = [
        ('cn=A,ou=people,dc=global', {
            'cn': ['A'],
            'member': ['cn=P,ou=people,dc=global']
        }),
    ]

    sub_search_result = LDAPError()

    manager = SyncManager(ldapconn=mocker.Mock())
    manager.ldapconn.search_s.side_effect = [search_result, sub_search_result]

    entries = manager.query_ldap(
        base='ou=people,dc=global',
        filter='(objectClass=group)',
        scope=2,
        joins={
            'member':
            dict(
                base='ou=people,dc=global',
                scope=2,
                filter='(objectClass=people)',
                attributes=['sAMAccountName'],
            )
        },
        attributes=['cn', 'member'],
    )

    expected_entries = [
        ('cn=A,ou=people,dc=global', {
            'cn': ['A'],
            'dn': ['cn=A,ou=people,dc=global'],
            'member': ['cn=P,ou=people,dc=global'],
        }, {}),
    ]

    assert expected_entries == entries