コード例 #1
0
ファイル: test_client.py プロジェクト: wearpants/osf.io
    def test_connect_or_error_returns_401_when_client_raises_unauthorized_error(self, mock_connection):
        mock_connection.side_effect = UnauthorizedError()
        with assert_raises(HTTPError) as cm:
            connect_or_error(self.host, self.token)

        mock_connection.assert_called_once_with(self.host, self.token)
        assert_equal(cm.exception.code, 401)
コード例 #2
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_error(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 {}
コード例 #3
0
ファイル: test_client.py プロジェクト: wearpants/osf.io
    def test_connect_or_error(self, mock_connection):
        mock_connection.return_value = mock.create_autospec(Connection)
        c = connect_or_error(self.host, self.token)

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