def test_export_exclude(self): m = Metadata() b = rdflib.BNode() m.add(RDF_NAMESPACES.CTS.title, "Title") m.add(RDF_NAMESPACES.CTS.title, "Title", lang="eng") m.add(RDF_NAMESPACES.CTS.title, "SubTitle", lang="eng") m.add(RDF_NAMESPACES.CTS.description, "SubTitle", lang="eng") m.add(RDF_NAMESPACES.CTS.description, "SubTitle", lang="fre") m.add(RDF_NAMESPACES.DTS.description, "SubTitle", lang="eng") m.add(RDF_NAMESPACES.DTS.description, "SubTitle", lang="fre") m.graph.add((b, RDF_NAMESPACES.TEI.nobodycares, m.asNode())) self.assertEqual( m.export(Mimetypes.JSON.Std, exclude=[RDF_NAMESPACES.CTS.title]), { 'https://w3id.org/dts/api#description': { 'fre': 'Subtitle', 'eng': 'Subtitle' }, 'http://chs.harvard.edu/xmlns/cts/description': { 'fre': 'Subtitle', 'eng': 'Subtitle' } }) self.assertEqual( m.export(Mimetypes.JSON.Std, exclude=[RDF_NAMESPACES.CTS]), { 'https://w3id.org/dts/api#description': { 'fre': 'Subtitle', 'eng': 'Subtitle' } })
def test_export_jsonld_withns(self): """ With no namespace """ b = Metadata() m3 = Metadatum("desc", [("fre", "Un bon livre")], namespace=NAMESPACES.CTS) m4 = Metadatum("title", [("eng", "A title"), ("fre", "Un titre")], namespace=NAMESPACES.CTS) m5 = Metadatum("dc:editor", [("eng", "An Editor"), ("fre", "Un Editeur")]) b[("desc", "title", "dc:editor")] = (m3, m4, m5) six.assertCountEqual( self, b.export(Mimetypes.JSON.DTS.Std), [ { 'http://chs.harvard.edu/xmlns/cts/desc': 'Un bon livre', 'http://chs.harvard.edu/xmlns/cts/title': 'Un titre', 'http://purl.org/dc/elements/1.1/editor': "Un Editeur", '@language': 'fre' }, { 'http://chs.harvard.edu/xmlns/cts/title': 'A title', 'http://purl.org/dc/elements/1.1/editor': "An Editor", '@language': 'eng' } ], "JSON LD Expression should take into account prefixes" )
def test_export_jsonld(self): b = Metadata() m3 = Metadatum("desc", [("fre", "Omelette")]) m4 = Metadatum("title", [("eng", "ttl"), ("fre", "titre")]) m5 = Metadatum("dc:editor", [("eng", "Captain Hook"), ("fre", "Capitaine Crochet")]) b[("desc", "title", "dc:editor")] = (m3, m4, m5) six.assertCountEqual( self, b.export(Mimetypes.JSON.DTS), [ { 'http://chs.harvard.edu/xmlns/cts/desc': 'Omelette', 'http://chs.harvard.edu/xmlns/cts/title': 'titre', 'http://purl.org/dc/elements/1.1/editor': "Capitaine Crochet", '@language': 'fre' }, { 'http://chs.harvard.edu/xmlns/cts/title': 'ttl', 'http://purl.org/dc/elements/1.1/editor': "Captain Hook", '@language': 'eng' } ], "JSON LD Expression should take into account prefixes" )
def test_export_multiple_values_JSON(self): m = Metadata() m.add(DC.contributor, "Me", lang="eng") m.add(DC.contributor, "You", lang="eng") m.add(DC.contributor, "Ich", lang="deu") m.add(DC.contributor, "Du", lang="deu") self.assertCountEqual( m.export(Mimetypes.JSON.Std), { 'http://purl.org/dc/elements/1.1/contributor': { 'deu': ['Du', 'Ich'], 'eng': ['Me', 'You'] } })
def test_export_xmlRDF_withNs(self): b = Metadata() m3 = Metadatum("desc", [("fre", "Omelette")], namespace=NAMESPACES.CTS) m4 = Metadatum("title", [("eng", "ttl"), ("fre", "titre")], namespace=NAMESPACES.CTS) m5 = Metadatum("dc:editor", [("eng", "Captain Hook"), ("fre", "Capitaine Crochet")]) b[("desc", "title", "dc:editor")] = (m3, m4, m5) self.assertEqual( b.export(Mimetypes.XML.RDF), """<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description> <editor xmlns="http://purl.org/dc/elements/1.1/" xml:lang="eng">Captain Hook</editor><editor xmlns="http://purl.org/dc/elements/1.1/" xml:lang="fre">Capitaine Crochet</editor><desc xmlns="http://chs.harvard.edu/xmlns/cts/" xml:lang="fre">Omelette</desc><title xmlns="http://chs.harvard.edu/xmlns/cts/" xml:lang="eng">ttl</title><title xmlns="http://chs.harvard.edu/xmlns/cts/" xml:lang="fre">titre</title> </rdf:Description> </rdf:RDF>""", "XML/RDF Expression should take into account prefixes" )
def test_export_json(self): b = Metadata() m3 = Metadatum("desc", [("fre", "Omelette")]) m4 = Metadatum("title", [("eng", "ttl"), ("fre", "titre")]) m5 = Metadatum("dc:editor", [("eng", "Captain Hook"), ("fre", "Capitaine Crochet")]) b[("desc", "title", "dc:editor")] = (m3, m4, m5) six.assertCountEqual( self, b.export(Mimetypes.JSON.Std), {'dc:editor': {'default': 'eng', 'langs': [('eng', 'Captain Hook'), ('fre', 'Capitaine Crochet')], 'name': 'dc:editor'}, 'title': {'default': 'eng', 'langs': [('eng', 'ttl'), ('fre', 'titre')], 'name': 'title'}, 'desc': {'default': 'fre', 'langs': [('fre', 'Omelette')], 'name': 'desc'}}, "JSON LD Expression should take into account prefixes" )