示例#1
0
def test_logged_social_connect_used_account(social_config, facebook_user,
                                            db_session):
    """Try to connect facebook account to logged in user used by other user."""
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(
        email="*****@*****.**",
        password="******",
        address_ip="127.0.0.1",
    )
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        "accounts": [{
            "domain": "facebook.com",
            "userid": user.provider_id("facebook"),
        }],
        "displayName":
        "teddy",
        "preferredUsername":
        "******",
        "emails": [{
            "value": "*****@*****.**"
        }],
        "name":
        "ted",
    }
    credentials = {"oauthAccessToken": "7897048593434"}
    provider_name = "facebook"
    provider_type = "facebook"
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = social_config.registry
    request.remote_addr = "127.0.0.123"
    request.context = AuthenticationComplete(profile, credentials,
                                             provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name="login_perform")
    request.login_perform.return_value = {"status": True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    # status should be false
    assert out["status"] is False
    assert out[
        "msg"] == "This ${provider} account is already connected with other account."
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id("facebook") is None
示例#2
0
def test_alreadyconnected(alreadyconnected_config, facebook_user, db_session):  # pylint:disable=redefined-outer-name
    """
    Try to connect facebook account to logged in user used by other users facebook account.

    Check redirect from SocialAccountAlreadyConnected.
    """
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(
        email="*****@*****.**",
        password="******",
        address_ip="127.0.0.1",
    )
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        "accounts": [{
            "domain": "facebook.com",
            "userid": user.provider_id("facebook"),
        }],
        "displayName":
        "teddy",
        "preferredUsername":
        "******",
        "emails": [{
            "value": "*****@*****.**"
        }],
        "name":
        "ted",
    }
    credentials = {"oauthAccessToken": "7897048593434"}
    provider_name = "facebook"
    provider_type = "facebook"
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = alreadyconnected_config.registry
    request.remote_addr = "127.0.0.123"
    request.context = AuthenticationComplete(profile, credentials,
                                             provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name="login_perform")
    request.login_perform.return_value = {"status": True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    assert out.location == EVENT_PATH.format(SocialAccountAlreadyConnected)
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id("facebook") is None
示例#3
0
def test_logged_social_connect_used_account(social_config, facebook_user,
                                            db_session):
    """Try to connect facebook account to logged in user used by other user."""
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(email='*****@*****.**',
                      password='******',
                      address_ip='127.0.0.1')
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        'accounts': [{
            'domain': u'facebook.com',
            'userid': user.provider_id('facebook')
        }],
        'displayName':
        u'teddy',
        'preferredUsername':
        u'teddy',
        'emails': [{
            'value': u'*****@*****.**'
        }],
        'name':
        u'ted'
    }
    credentials = {'oauthAccessToken': '7897048593434'}
    provider_name = u'facebook'
    provider_type = u'facebook'
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = social_config.registry
    request.remote_addr = u'127.0.0.123'
    request.context = AuthenticationComplete(profile, credentials,
                                             provider_name, provider_type)
    request._ = lambda msg, *args, **kwargs: msg

    request.login_perform = MagicMock(name='login_perform')
    request.login_perform.return_value = {'status': True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    # status should be false
    assert out['status'] is False
    assert out[
        'msg'] == 'This ${provider} account is already connected with other account.'
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id('facebook') is None
示例#4
0
def test_alreadyconnected(alreadyconnected_config, alreadyconnected_app,
                          facebook_user, db_session):
    """Try to connect facebook account to logged in user used by other user check redirect from SocialAccountAlreadyConnected."""
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(email=text_type('*****@*****.**'),
                      password=text_type('somepassword'),
                      address_ip=text_type('127.0.0.1'))
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        'accounts': [{
            'domain': text_type('facebook.com'),
            'userid': user.provider_id('facebook')
        }],
        'displayName':
        text_type('teddy'),
        'preferredUsername':
        text_type('teddy'),
        'emails': [{
            'value': text_type('*****@*****.**')
        }],
        'name':
        text_type('ted')
    }
    credentials = {'oauthAccessToken': '7897048593434'}
    provider_name = text_type('facebook')
    provider_type = text_type('facebook')
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = alreadyconnected_config.registry
    request.remote_addr = text_type('127.0.0.123')
    request.context = AuthenticationComplete(profile, credentials,
                                             provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name='login_perform')
    request.login_perform.return_value = {'status': True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    assert out.location == EVENT_PATH.format(SocialAccountAlreadyConnected)
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id('facebook') is None
def test_logged_social_connect_used_account(social_config, facebook_user, db_session):
    """Try to connect facebook account to logged in user used by other user."""
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(
        email=text_type('*****@*****.**'),
        password=text_type('somepassword'),
        address_ip=text_type('127.0.0.1')
    )
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        'accounts':
        [{'domain': text_type('facebook.com'), 'userid': user.provider_id('facebook')}],
        'displayName':
        text_type('teddy'),
        'preferredUsername':
        text_type('teddy'),
        'emails':
        [{'value': text_type('*****@*****.**')}],
        'name':
        text_type('ted')
    }
    credentials = {'oauthAccessToken': '7897048593434'}
    provider_name = text_type('facebook')
    provider_type = text_type('facebook')
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = social_config.registry
    request.remote_addr = text_type('127.0.0.123')
    request.context = AuthenticationComplete(profile, credentials, provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name='login_perform')
    request.login_perform.return_value = {'status': True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    # status should be false
    assert out['status'] is False
    assert out['msg'] == 'This ${provider} account is already connected with other account.'
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id(text_type('facebook')) is None
示例#6
0
def test_alreadyconnected(alreadyconnected_config, facebook_user, db_session):  # pylint:disable=redefined-outer-name
    """
    Try to connect facebook account to logged in user used by other users facebook account.

    Check redirect from SocialAccountAlreadyConnected.
    """
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(
        email=text_type('*****@*****.**'),
        password=text_type('somepassword'),
        address_ip=text_type('127.0.0.1')
    )
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        'accounts': [{'domain': text_type('facebook.com'), 'userid': user.provider_id('facebook')}],
        'displayName': text_type('teddy'),
        'preferredUsername': text_type('teddy'),
        'emails': [{'value': text_type('*****@*****.**')}],
        'name': text_type('ted')
    }
    credentials = {'oauthAccessToken': '7897048593434'}
    provider_name = text_type('facebook')
    provider_type = text_type('facebook')
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = alreadyconnected_config.registry
    request.remote_addr = text_type('127.0.0.123')
    request.context = AuthenticationComplete(profile, credentials, provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name='login_perform')
    request.login_perform.return_value = {'status': True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    assert out.location == EVENT_PATH.format(SocialAccountAlreadyConnected)
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id(text_type('facebook')) is None
def test_logged_social_connect_used_account(social_config, facebook_user, db_session):
    """Try to connect facebook account to logged in user used by other user."""
    # this user will be logged and trying to connect facebook's user account.
    fresh_user = User(
        email=text_type("*****@*****.**"), password=text_type("somepassword"), address_ip=text_type("127.0.0.1")
    )
    db_session.add(fresh_user)
    transaction.commit()
    user = db_session.merge(facebook_user)
    fresh_user = db_session.merge(fresh_user)

    # mock request
    profile = {
        "accounts": [{"domain": text_type("facebook.com"), "userid": user.provider_id("facebook")}],
        "displayName": text_type("teddy"),
        "preferredUsername": text_type("teddy"),
        "emails": [{"value": text_type("*****@*****.**")}],
        "name": text_type("ted"),
    }
    credentials = {"oauthAccessToken": "7897048593434"}
    provider_name = text_type("facebook")
    provider_type = text_type("facebook")
    request = testing.DummyRequest()
    request.user = fresh_user
    request.registry = social_config.registry
    request.remote_addr = text_type("127.0.0.123")
    request.context = AuthenticationComplete(profile, credentials, provider_name, provider_type)
    request._ = mock_translate

    request.login_perform = MagicMock(name="login_perform")
    request.login_perform.return_value = {"status": True}
    # call!
    view = SocialLoginViews(request)
    out = view()
    # status should be false
    assert out["status"] is False
    assert out["msg"] == "This ${provider} account is already connected with other account."
    transaction.begin()
    fresh_user = db_session.merge(fresh_user)
    assert fresh_user.provider_id("facebook") is None