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)
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)
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 {}
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
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
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)
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)
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)