コード例 #1
0
    def test_connect_or_401_forbidden(self, mock_connection):
        mock_connection.side_effect = UnauthorizedError()
        with assert_raises(HTTPError) as cm:
            connect_or_401('My token')

        mock_connection.assert_called_once_with(settings.HOST, 'My token')
        assert_equal(cm.exception.code, 401)
コード例 #2
0
ファイル: test_client.py プロジェクト: jinluyuan/osf.io
    def test_connect_or_401_forbidden(self, mock_connection):
        mock_connection.side_effect = UnauthorizedError()
        with assert_raises(HTTPError) as cm:
            connect_or_401("My token")

        mock_connection.assert_called_once_with(settings.HOST, "My token")
        assert_equal(cm.exception.code, 401)
コード例 #3
0
def dataverse_add_user_account(auth, **kwargs):
    """Verifies new external account credentials and adds to user's list"""
    user = auth.user
    provider = DataverseProvider()

    host = request.json.get('host').rstrip('/')
    api_token = request.json.get('api_token')

    # Verify that credentials are valid
    client.connect_or_401(host, api_token)

    # Note: `DataverseSerializer` expects display_name to be a URL
    try:
        provider.account = ExternalAccount(
            provider=provider.short_name,
            provider_name=provider.name,
            display_name=host,       # no username; show host
            oauth_key=host,          # hijacked; now host
            oauth_secret=api_token,  # hijacked; now api_token
            provider_id=api_token,   # Change to username if Dataverse allows
        )
        provider.account.save()
    except KeyExistsException:
        # ... or get the old one
        provider.account = ExternalAccount.find_one(
            Q('provider', 'eq', provider.short_name) &
            Q('provider_id', 'eq', api_token)
        )
        assert provider.account is not None

    if provider.account not in user.external_accounts:
        user.external_accounts.append(provider.account)

    user_addon = auth.user.get_addon('dataverse')
    if not user_addon:
        user.add_addon('dataverse')
    user.save()

    # Need to ensure that the user has dataverse enabled at this point
    user.get_or_add_addon('dataverse', auth=auth)
    user.save()

    return {}
コード例 #4
0
ファイル: config.py プロジェクト: msarahan/osf.io
def dataverse_set_user_config(auth, **kwargs):

    user = auth.user

    try:
        assert_clean(request.json)
    except AssertionError:
        # TODO: Test me!
        raise HTTPError(http.NOT_ACCEPTABLE)

    # Log in with Dataverse
    token = request.json.get('api_token')
    client.connect_or_401(token)

    user_addon = user.get_addon('dataverse')
    if user_addon is None:
        user.add_addon('dataverse')
        user_addon = user.get_addon('dataverse')

    user_addon.api_token = token
    user_addon.save()

    return {'token': token}, http.OK
コード例 #5
0
ファイル: config.py プロジェクト: jinluyuan/osf.io
def dataverse_set_user_config(auth, **kwargs):

    user = auth.user

    try:
        assert_clean(request.json)
    except AssertionError:
        # TODO: Test me!
        raise HTTPError(http.NOT_ACCEPTABLE)

    # Log in with Dataverse
    token = request.json.get("api_token")
    client.connect_or_401(token)

    user_addon = user.get_addon("dataverse")
    if user_addon is None:
        user.add_addon("dataverse")
        user_addon = user.get_addon("dataverse")

    user_addon.api_token = token
    user_addon.save()

    return {"token": token}, http.OK
コード例 #6
0
ファイル: test_client.py プロジェクト: jinluyuan/osf.io
    def test_connect_or_401(self, mock_connection):
        mock_connection.return_value = mock.create_autospec(Connection)
        c = connect_or_401("My token")

        mock_connection.assert_called_once_with(settings.HOST, "My token")
        assert_true(c)
コード例 #7
0
ファイル: test_client.py プロジェクト: Alpani/osf.io
    def test_connect_or_401(self, mock_connection):
        mock_connection.return_value = mock.create_autospec(Connection)
        c = connect_or_401(self.host, self.token)

        mock_connection.assert_called_once_with(self.host, self.token)
        assert_true(c)
コード例 #8
0
    def test_connect_or_401(self, mock_connection):
        mock_connection.return_value = mock.create_autospec(Connection)
        c = connect_or_401('My token')

        mock_connection.assert_called_once_with(settings.HOST, 'My token')
        assert_true(c)
コード例 #9
0
ファイル: test_client.py プロジェクト: rmoorman/osf.io
    def test_connect_or_401(self, mock_connection):
        mock_connection.return_value = mock.create_autospec(Connection)
        c = connect_or_401(self.host, self.token)

        mock_connection.assert_called_once_with(self.host, self.token)
        assert_true(c)