예제 #1
0
 def test_get_data_divs(self):
     m = Mapper()
     self.assertEqual(m._get_data_divs(u"part1#part2#part3", False), [u"part1#part2#part3"])
     self.assertEqual(m._get_data_divs(u"part1#part2#part3", True), [u"part1", u"part2", u"part3"])
     self.assertEqual(m._get_data_divs(u"part\#1#part2#part\#3", True), [u"part#1", u"part2", u"part#3"])
     self.assertEqual(
         m._get_data_divs(u"part\#1 and \#1a#part2#part\#3", True), [u"part#1 and #1a", u"part2", u"part#3"]
     )
예제 #2
0
 def test_dwc(self):
     m = Mapper('dwc', [])
     m.add_data(u'<dwc:scientificName>', u'Scientific Name')
     m.add_data(u'<dwc:higherClassification>', u'Higher Classification')
     m.add_data(u'<dwc:kingdom>', u'Kingdom')
     m.add_data(u'<dwc:phylum>', u'Phylum')
     m.add_data(u'<dwc:class>', u'Class')
     m.add_data(u'<dwc:order>', u'Order')
     m.add_data(u'<dwc:family>', u'Family')
     m.add_data(u'<dwc:genus>', u'Genus')
     m.add_data(u'<dwc:infraspecificEpithet>', u'Subspecies')
     m.add_data(u'<dwc:recordedBy>', u'Sci Entist || Phy Sycist')
     m.add_data(u'<dwc:recordNumber>', u'2')
     m.add_data(u'<dwc:municipality>', u'Muni')
     m.add_data(u'<dwc:locality>', u'locality')
     dwc_set = m.get_xml()
     dwc = dwc_set.simple_darwin_record
     self.assertTrue(isinstance(dwc, SimpleDarwinRecord))
     self.assertEqual(dwc.scientific_name, u'Scientific Name')
     self.assertEqual(dwc.higher_classification, u'Higher Classification')
     self.assertEqual(dwc.kingdom, u'Kingdom')
     self.assertEqual(dwc.phylum, u'Phylum')
     self.assertEqual(dwc.class_, u'Class')
     self.assertEqual(dwc.order, u'Order')
     self.assertEqual(dwc.family, u'Family')
     self.assertEqual(dwc.genus, u'Genus')
     self.assertEqual(dwc.infraspecific_epithet, u'Subspecies')
     self.assertEqual(dwc.recorded_by, u'Sci Entist | Phy Sycist')
     self.assertEqual(dwc.record_number, u'2')
     self.assertEqual(dwc.municipality, u'Muni')
예제 #3
0
 def test_get_data_divs(self):
     m = Mapper('mods', [])
     self.assertEqual(m._get_data_divs(u'part1#part2#part3', False), [u'part1#part2#part3'])
     self.assertEqual(m._get_data_divs(u'part1#part2#part3', True), [u'part1', u'part2', u'part3'])
     self.assertEqual(m._get_data_divs(u'part\#1#part2#part\#3', True), [u'part#1', u'part2', u'part#3'])
     self.assertEqual(m._get_data_divs(u'part\#1 and \#1a#part2#part\#3', True), [u'part#1 and #1a', u'part2', u'part#3'])
예제 #4
0
 def test_mods_output(self):
     self.maxDiff = None
     m1 = Mapper('mods', [])
     mods = m1.get_xml()
     self.assertTrue(isinstance(mods, Mods))
     #put some data in here, so we can pass this as a parent_mods to the next test
     # these next two should be deleted and not displayed twice
     m1.add_data(u'<mods:identifier type="local" displayLabel="Original no.">', u'1591')
     m1.add_data(u'<mods:subject><mods:topic>', u'Recursion')
     # this one isn't added again, and should still be in the output
     m1.add_data(u'<mods:physicalDescription><mods:extent>#<mods:digitalOrigin>#<mods:note>', u'1 video file#reformatted digital#note 1')
     #add all data as unicode, since that's how it should be coming from DataHandler
     m = Mapper('mods', [], parent_mods=m1.get_xml())
     m.add_data(u'<mods:mods ID="">', u'mods000')
     m.add_data(u'<mods:titleInfo><mods:title>#<mods:partName>#<mods:partNumber>', u'é. 1 Test#part \#1#1')
     m.add_data(u'<mods:titleInfo type="alternative" displayLabel="display"><mods:title>#<mods:nonSort>', u'Alt Title#The')
     m.add_data(u'<mods:identifier type="local" displayLabel="Original no.">', u'1591')
     m.add_data(u'<mods:identifier type="local" displayLabel="PN_DB_id">', u'321')
     m.add_data(u'<mods:genre authority="aat">', u'Programming Tests')
     m.add_data(u'<mods:originInfo><mods:publisher>', u'Publisher')
     m.add_data(u'<mods:originInfo><mods:place><mods:placeTerm>', u'USA')
     m.add_data(u'<mods:originInfo displayLabel="Date Ądded to Colléction"><mods:dateOther encoding="w3cdtf" keyDate="yes">', u'2010-01-31')
     m.add_data(u'<mods:subject><mods:topic>', u'PROGRĄMMING || Testing')
     m.add_data(u'<mods:subject><mods:topic>#<mods:topic>', u'Software#Testing')
     m.add_data(u'<mods:subject authority="local"><mods:topic>', u'Recursion || ')
     m.add_data(u'<mods:subject authority="local"><mods:temporal>', u'1990s')
     m.add_data(u'<mods:subject><mods:geographic>', u'United States')
     m.add_data(u'<mods:subject><mods:hierarchicalGeographic><mods:country>United States</mods:country><mods:state>', u'Pennsylvania')
     m.add_data(u'<mods:name type="personal"><mods:namePart>#<mods:role><mods:roleTerm>', u'Smith#creator || Jones, T.')
     m.add_data(u'<mods:namePart type="date">', u'1799-1889')
     m.add_data(u'<mods:name type="personal"><mods:namePart>#<mods:role><mods:roleTerm type="text">winner', u'Bob')
     m.add_data(u'<mods:name type="personal"><mods:namePart>#<mods:namePart type="date">#<mods:namePart type="termsOfAddress">', u'Fob, Bob || Smith, Ted#1900-2013#Sir')
     m.add_data(u'<mods:originInfo><mods:dateCreated encoding="w3cdtf" point="end">', u'7/13/1899')
     m.add_data(u'<mods:originInfo><mods:dateCreated encoding="w3cdtf">#<mods:dateCreated encoding="w3cdtf" point="start" keyDate="yes">#<mods:dateCreated encoding="w3cdtf" point="end">', u'1972-10-1973-07-07#1972-10#1973-07-07')
     m.add_data(u'<mods:note displayLabel="note label">', u'Note 1&2')
     m.add_data(u'<mods:note>', u'3<4')
     m.add_data(u'<mods:location><mods:physicalLocation>zzz#<mods:url>#<mods:holdingSimple><mods:copyInformation><mods:note>', u'#http://www.example.com#Note 1')
     m.add_data(u'<mods:note>', u'another note')
     m.add_data(u'<mods:typeOfResource>', u'video')
     m.add_data(u'<mods:language><mods:languageTerm authority="iso639-2b" type="code">', u'eng')
     m.add_data(u'<mods:relatedItem type="related item" displayLabel="display"><mods:titleInfo><mods:title>', u'Some related item display title')
     m.add_data(u'<mods:originInfo><mods:dateIssued encoding="w3cdtf">', u'1974-01-01')
     m.add_data(u'<mods:originInfo><mods:dateCaptured encoding="w3cdtf">', u'1975-01-01')
     m.add_data(u'<mods:originInfo><mods:dateValid encoding="w3cdtf">', u'1976-01-01')
     m.add_data(u'<mods:originInfo><mods:dateModified encoding="w3cdtf">', u'1977-01-01')
     m.add_data(u'<mods:originInfo><mods:copyrightDate>', u'1978-01-##')
     mods = m.get_xml()
     mods_data = unicode(mods.serializeDocument(pretty=True), 'utf-8')
     self.assertTrue(isinstance(mods, Mods))
     self.assertEqual(mods.title_info_list[0].title, u'é. 1 Test')
     self.assertEqual(mods.title_info_list[0].part_number, u'1')
     self.assertEqual(mods.title_info_list[0].part_name, u'part #1')
     #this does assume that the attributes will always be written out in the same order
     self.assertEqual(mods_data, self.FULL_MODS)