def _build_ezid_metadata(node): """Build metadata for submission to EZID using the DataCite profile. See http://ezid.cdlib.org/doc/apidoc.html for details. """ doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=node._id) metadata = {"_target": node.absolute_url, "datacite": datacite_metadata_for_node(node=node, doi=doi)} return doi, metadata
def test_metadata_for_node_only_includes_visible_contribs(self): metadata_xml = metadata.datacite_metadata_for_node(self.node, doi=self.identifier.value) # includes visible contrib name assert_in(u'{}, {}'.format( self.visible_contrib.family_name, self.visible_contrib.given_name), metadata_xml) # doesn't include invisible contrib name assert_not_in(self.invisible_contrib.family_name, metadata_xml) assert_in(self.identifier.value, metadata_xml)
def test_metadata_for_node_only_includes_visible_contribs(self): metadata_xml = datacite_metadata_for_node(self.node, doi=self.identifier.value) # includes visible contrib name assert_in(u'{}, {}'.format( self.visible_contrib.family_name, self.visible_contrib.given_name), metadata_xml) # doesn't include invisible contrib name assert_not_in(self.invisible_contrib.family_name, metadata_xml) assert_in(self.identifier.value, metadata_xml)
def _build_ezid_metadata(node): """Build metadata for submission to EZID using the DataCite profile. See http://ezid.cdlib.org/doc/apidoc.html for details. """ doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=node._id) metadata = { '_target': node.absolute_url, 'datacite': datacite_metadata_for_node(node=node, doi=doi) } return doi, metadata
def test_metadata_for_node_has_correct_structure(self): metadata_xml = metadata.datacite_metadata_for_node(self.node, doi=self.identifier.value) root = lxml.etree.fromstring(metadata_xml) xsi_location = '{http://www.w3.org/2001/XMLSchema-instance}schemaLocation' expected_location = 'http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd' assert_equal(root.attrib[xsi_location], expected_location) identifier = root.find('{%s}identifier' % metadata.NAMESPACE) assert_equal(identifier.attrib['identifierType'], 'DOI') assert_equal(identifier.text, self.identifier.value) creators = root.find('{%s}creators' % metadata.NAMESPACE) assert_equal(len(creators.getchildren()), len(self.node.visible_contributors)) publisher = root.find('{%s}publisher' % metadata.NAMESPACE) assert_equal(publisher.text, 'Open Science Framework') pub_year = root.find('{%s}publicationYear' % metadata.NAMESPACE) assert_equal(pub_year.text, str(self.node.registered_date.year))
def test_metadata_for_node_has_correct_structure(self): metadata_xml = datacite_metadata_for_node(self.node, doi=self.identifier.value) root = lxml.etree.fromstring(metadata_xml) xsi_location = '{http://www.w3.org/2001/XMLSchema-instance}schemaLocation' expected_location = 'http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd' assert_equal(root.attrib[xsi_location], expected_location) identifier = root.find('{%s}identifier' % metadata.NAMESPACE) assert_equal(identifier.attrib['identifierType'], 'DOI') assert_equal(identifier.text, self.identifier.value) creators = root.find('{%s}creators' % metadata.NAMESPACE) assert_equal(len(creators.getchildren()), len(self.node.visible_contributors)) publisher = root.find('{%s}publisher' % metadata.NAMESPACE) assert_equal(publisher.text, 'Open Science Framework') pub_year = root.find('{%s}publicationYear' % metadata.NAMESPACE) assert_equal(pub_year.text, str(self.node.registered_date.year))