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
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