def test_user_provider_id(db_with_user):

    user = db_with_user.query(User).filter(User.email == text_type('*****@*****.**')).one()
    # Provider does not exists yet
    assert not user.provider_id('email')

    provider = AuthenticationProvider()
    provider.provider = text_type('email')
    provider.provider_id = user.email
    user.providers.append(provider)
    db_with_user.commit()

    user = db_with_user.query(User).filter(User.email == text_type('*****@*****.**')).one()
    # Provider does not exists yet
    assert user.provider_id('email')
def test_user_provider_id(db_session, user):
    """User provider_id returns proper provider identification."""
    user = db_session.merge(user)
    email = user.email
    # Provider does not exists yet
    assert not user.provider_id("email")

    provider = AuthenticationProvider()
    provider.provider = "email"
    provider.provider_id = email
    user.providers.append(provider)
    transaction.commit()

    user = db_session.query(User).filter(User.email == email).one()
    # Provider exists
    assert user.provider_id("email") == email
def test_user_provider_id(db_session, user):
    """User provider_id returns proper provider identification."""
    user = db_session.merge(user)
    email = user.email
    # Provider does not exists yet
    assert not user.provider_id('email')

    provider = AuthenticationProvider()
    provider.provider = text_type('email')
    provider.provider_id = email
    user.providers.append(provider)
    transaction.commit()

    user = db_session.query(User).filter(User.email == email).one()
    # Provider exists
    assert user.provider_id('email') == email
        def set_provider(user, provider_name, user_provider_id):
            '''
                Method sets the provider authentication method for user.
            '''
            if user.id:
                try:
                    provider_auth = Session.query(
                        AuthenticationProvider).filter(AuthenticationProvider.user_id == user.id,
                                                       AuthenticationProvider.provider == provider_name).one()
                    if provider_auth.provider_id != user_provider_id:
                        return False
                    return True
                except NoResultFound:
                    pass

            provider_auth = AuthenticationProvider()
            provider_auth.provider = provider_name
            provider_auth.provider_id = user_provider_id
            user.providers.append(provider_auth)
            return True