def serialized_node_settings(self): result = super(DataverseSerializer, self).serialized_node_settings result['hosts'] = DEFAULT_HOSTS # Update with Dataverse specific fields if self.node_settings.has_auth: external_account = self.node_settings.external_account dataverse_host = external_account.oauth_key connection = client.connect_from_settings(self.node_settings) dataverses = client.get_dataverses(connection) result.update({ 'dataverseHost': dataverse_host, 'connected': connection is not None, 'dataverses': [ {'title': dataverse.title, 'alias': dataverse.alias} for dataverse in dataverses ], 'savedDataverse': { 'title': self.node_settings.dataverse, 'alias': self.node_settings.dataverse_alias, }, 'savedDataset': { 'title': self.node_settings.dataset, 'doi': self.node_settings.dataset_doi, } }) return result
def serialized_node_settings(self): result = super(DataverseSerializer, self).serialized_node_settings result['hosts'] = DEFAULT_HOSTS # Update with Dataverse specific fields if self.node_settings.has_auth: external_account = self.node_settings.external_account dataverse_host = external_account.oauth_key connection = client.connect_from_settings(self.node_settings) dataverses = client.get_dataverses(connection) result.update({ 'dataverseHost': dataverse_host, 'connected': connection is not None, 'dataverses': [{ 'title': dataverse.title, 'alias': dataverse.alias } for dataverse in dataverses], 'savedDataverse': { 'title': self.node_settings.dataverse, 'alias': self.node_settings.dataverse_alias, }, 'savedDataset': { 'title': self.node_settings.dataset, 'doi': self.node_settings.dataset_doi, } }) return result
def serialize_settings(node_settings, current_user): """View helper that returns a dictionary representation of a DataverseNodeSettings record. Provides the return value for the dataverse config endpoints. """ user_settings = node_settings.user_settings user_is_owner = user_settings is not None and (user_settings.owner._primary_key == current_user._primary_key) current_user_settings = current_user.get_addon("dataverse") result = { "nodeHasAuth": node_settings.has_auth, "userIsOwner": user_is_owner, "userHasAuth": current_user_settings is not None and current_user_settings.has_auth, "urls": serialize_urls(node_settings), } if node_settings.has_auth: # Add owner's profile info result["urls"]["owner"] = web_url_for("profile_view_id", uid=user_settings.owner._primary_key) result.update({"ownerName": user_settings.owner.fullname, "apiToken": user_settings.api_token}) # Add owner's dataverse settings connection = client.connect_from_settings(user_settings) dataverses = client.get_dataverses(connection) result.update( { "connected": connection is not None, "dataverses": [{"title": dataverse.title, "alias": dataverse.alias} for dataverse in dataverses], "savedDataverse": {"title": node_settings.dataverse, "alias": node_settings.dataverse_alias}, "savedDataset": {"title": node_settings.dataset, "doi": node_settings.dataset_doi}, } ) return result
def test_get_dataverses(self): published_dv = mock.create_autospec(Dataverse) unpublished_dv = mock.create_autospec(Dataverse) type(published_dv).is_published = mock.PropertyMock(return_value=True) type(unpublished_dv).is_published = mock.PropertyMock(return_value=False) self.mock_connection.get_dataverses.return_value = [published_dv, unpublished_dv] dvs = get_dataverses(self.mock_connection) self.mock_connection.get_dataverses.assert_called_once_with() assert_in(published_dv, dvs) assert_in(unpublished_dv, dvs) assert_equal(len(dvs), 2)
def test_get_dataverses(self): released_dv = mock.create_autospec(Dataverse) unreleased_dv = mock.create_autospec(Dataverse) type(released_dv).is_released = mock.PropertyMock(return_value=True) type(unreleased_dv).is_released = mock.PropertyMock(return_value=False) self.mock_connection.get_dataverses.return_value = [ released_dv, unreleased_dv ] dvs = get_dataverses(self.mock_connection) self.mock_connection.get_dataverses.assert_called_once_with() assert_in(released_dv, dvs) assert_not_in(unreleased_dv, dvs)
def test_get_dataverses(self): published_dv = mock.create_autospec(Dataverse) unpublished_dv = mock.create_autospec(Dataverse) type(published_dv).is_published = mock.PropertyMock(return_value=True) type(unpublished_dv).is_published = mock.PropertyMock(return_value=False) self.mock_connection.get_dataverses.return_value = [ published_dv, unpublished_dv ] dvs = get_dataverses(self.mock_connection) self.mock_connection.get_dataverses.assert_called_once_with() assert_in(published_dv, dvs) assert_in(unpublished_dv, dvs) assert_equal(len(dvs), 2)
def serialize_settings(node_settings, current_user): """View helper that returns a dictionary representation of a DataverseNodeSettings record. Provides the return value for the dataverse config endpoints. """ user_settings = node_settings.user_settings user_is_owner = user_settings is not None and ( user_settings.owner._primary_key == current_user._primary_key) current_user_settings = current_user.get_addon('dataverse') result = { 'nodeHasAuth': node_settings.has_auth, 'userIsOwner': user_is_owner, 'userHasAuth': current_user_settings is not None and current_user_settings.has_auth, 'urls': serialize_urls(node_settings), } if node_settings.has_auth: # Add owner's profile info result['urls']['owner'] = web_url_for( 'profile_view_id', uid=user_settings.owner._primary_key) result.update({ 'ownerName': user_settings.owner.fullname, 'dataverseUsername': user_settings.dataverse_username, }) # Add owner's dataverse settings connection = client.connect_from_settings(user_settings) dataverses = client.get_dataverses(connection) result.update({ 'connected': connection is not None, 'dataverses': [{ 'title': dataverse.title, 'alias': dataverse.alias } for dataverse in dataverses], 'savedDataverse': { 'title': node_settings.dataverse, 'alias': node_settings.dataverse_alias }, 'savedStudy': { 'title': node_settings.study, 'hdl': node_settings.study_hdl } }) return result
def serialize_settings(node_settings, current_user): """View helper that returns a dictionary representation of a DataverseNodeSettings record. Provides the return value for the dataverse config endpoints. """ user_settings = node_settings.user_settings user_is_owner = user_settings is not None and ( user_settings.owner._primary_key == current_user._primary_key ) current_user_settings = current_user.get_addon('dataverse') result = { 'nodeHasAuth': node_settings.has_auth, 'userIsOwner': user_is_owner, 'userHasAuth': current_user_settings is not None and current_user_settings.has_auth, 'urls': serialize_urls(node_settings), } if node_settings.has_auth: # Add owner's profile info result['urls']['owner'] = web_url_for('profile_view_id', uid=user_settings.owner._primary_key) result.update({ 'ownerName': user_settings.owner.fullname, 'dataverseUsername': user_settings.dataverse_username, }) # Add owner's dataverse settings connection = connect_from_settings(user_settings) dataverses = get_dataverses(connection) result.update({ 'connected': connection is not None, 'dataverses': [ {'title': dataverse.title, 'alias': dataverse.alias} for dataverse in dataverses ], 'savedDataverse': { 'title': node_settings.dataverse, 'alias': node_settings.dataverse_alias }, 'savedStudy': { 'title': node_settings.study, 'hdl': node_settings.study_hdl } }) return result