def test_has_member_bad_identifier(mocker, settings): mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', 'group_dn') with pytest.raises(IdentityRetrievalFailed): group.has_member(None)
def test_has_member_unkown_user(mocker, settings): mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') mocker.patch('flask_multipass.providers.ldap.providers.get_user_by_id', return_value=(None, {'cn': ['Configuration']})) app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', 'group_dn') with pytest.raises(IdentityRetrievalFailed): group.has_member('unkown_user')
def test_has_member_unkown_user(mocker, settings): mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') mocker.patch('flask_multipass.providers.ldap.providers.get_user_by_id', return_value=(None, { 'cn': ['Configuration'] })) app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', 'group_dn') with pytest.raises(IdentityRetrievalFailed): group.has_member('unkown_user')
def test_has_member_slapd(mocker, settings, group_dn, user_mock, expected): mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') mocker.patch('flask_multipass.providers.ldap.providers.get_user_by_id', return_value=(user_mock['dn'], user_mock['data'])) app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', group_dn) assert group.has_member(user_mock['data']['uid'][0]) == expected
def test_has_member_ad(mocker, settings, group_mock, user_mock, expected): def get_token_groups(user_dn): if user_mock['dn'] != user_dn: pytest.fail('expected {0}, got {1}'.format(user_mock['dn'], user_dn)) return user_mock['token_groups'] mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') mocker.patch('flask_multipass.providers.ldap.providers.get_user_by_id', return_value=(user_mock['dn'], user_mock['data'])) mocker.patch('flask_multipass.providers.ldap.providers.get_group_by_id', return_value=(group_mock['dn'], group_mock['data'])) mocker.patch('flask_multipass.providers.ldap.providers.get_token_groups_from_user_dn', side_effect=get_token_groups) app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', group_mock['dn']) assert group.has_member(user_mock['data']['uid'][0]) == expected
def test_has_member_ad(mocker, settings, group_mock, user_mock, expected): def get_token_groups(user_dn): if user_mock['dn'] != user_dn: pytest.fail('expected {0}, got {1}'.format(user_mock['dn'], user_dn)) return user_mock['token_groups'] mocker.patch('flask_multipass.providers.ldap.util.ReconnectLDAPObject') mocker.patch('flask_multipass.providers.ldap.providers.get_user_by_id', return_value=(user_mock['dn'], user_mock['data'])) mocker.patch('flask_multipass.providers.ldap.providers.get_group_by_id', return_value=(group_mock['dn'], group_mock['data'])) mocker.patch( 'flask_multipass.providers.ldap.providers.get_token_groups_from_user_dn', side_effect=get_token_groups) app = Flask('test') multipass = Multipass(app) with app.app_context(): idp = LDAPIdentityProvider(multipass, 'LDAP test idp', settings) group = LDAPGroup(idp, 'LDAP test group', group_mock['dn']) assert group.has_member(user_mock['data']['uid'][0]) == expected