def testInstances(self): '''Test to ensure instances don't share instance data. ''' a = ResourceAttributes() b = ResourceAttributes() a.formats.append('text/xml') a.creators.append('Dennis Moore') a.subjects.append('Silliness') a.publishers.append('BBC') a.contributors.append('Nigel') a.types.append('Video') a.languages.append('en') a.relations.append('Fawlty Towers') a.coverages.append('1970') a.rights.append('Abused') a.contexts.append('humor') a.locations.append('http://bbc.co.uk/') self.assertNotEquals(a.formats, b.formats) self.assertNotEquals(a.creators, b.creators) self.assertNotEquals(a.subjects, b.subjects) self.assertNotEquals(a.publishers, b.publishers) self.assertNotEquals(a.contributors, b.contributors) self.assertNotEquals(a.types, b.types) self.assertNotEquals(a.languages, b.languages) self.assertNotEquals(a.relations, b.relations) self.assertNotEquals(a.coverages, b.coverages) self.assertNotEquals(a.rights, b.rights) self.assertNotEquals(a.contexts, b.contexts) self.assertNotEquals(a.locations, b.locations)
def testXML(self): '''Test XML serialization and recomposition from XML. ''' a = ResourceAttributes('uri:fish', 'Fish', ['text/html'], 'A book about fish.') doc = xml.dom.minidom.getDOMImplementation().createDocument(None, None, None) node = a.toXML(doc) b = ResourceAttributes(node=node) self.assertEquals(a, b)
def testCmp(self): '''Test comparison operations. ''' a = ResourceAttributes('uri:fish', 'Fish', ['text/html'], 'A book about fish.') b = ResourceAttributes('uri:fish', 'Fish', ['text/html'], 'A book about fish.') c = ResourceAttributes('uri:clams', 'Clams', ['text/html'], 'A book about clams.') self.assertEquals(a, a) self.assertEquals(a, b) self.assertNotEquals(a, c) self.assert_(a <= b) self.assert_(a >= c) self.assert_(a > c) self.assert_(a <= a)
def testXMLValidity(self): '''Test to see if all required XML elements are in there. ''' a = ResourceAttributes('uri:anus', 'Anus', ['text/html'], 'The anus, rectum, and other parts of the bum.', ['Buttman'], ['butts', 'henies', 'booties'], ['Butts and Co Publishing'], ['Dr Eugene Bottomman, III'], [], ['reference'], ['The Big Book of Booty'], ['en'], ['Buttholes and other oddities'], ['anatomy'], ['Cannot touch this'], ['system.buttServer'], 'granule', 'system.buttServer', ['http://butt.info/butt']) doc = xml.dom.minidom.getDOMImplementation().createDocument(None, None, None) node = a.toXML(doc) childElements = [n.nodeName for n in node.childNodes] self.assertEquals([u'Identifier', u'Title', u'Format', u'Description', u'Creator', u'Subject', u'Subject', u'Subject', u'Publisher', u'Contributor', u'Type', u'Source', u'Language', u'Relation', u'Coverage', u'Rights', u'resContext', u'resAggregation', u'resClass', u'resLocation'], childElements)
def testDefaults(self): '''Test if default values are reasonable. ''' ra = ResourceAttributes() self.assertEquals('UNKNOWN', ra.identifier) self.assertEquals('UNKNOWN', ra.title) self.assertEquals(0, len(ra.formats)) self.assertEquals('UNKNOWN', ra.description) self.assertEquals(0, len(ra.creators)) self.assertEquals(0, len(ra.subjects)) self.assertEquals(0, len(ra.publishers)) self.assertEquals(0, len(ra.contributors)) self.assertEquals(0, len(ra.dates)) self.assertEquals(0, len(ra.types)) self.assertEquals(0, len(ra.sources)) self.assertEquals(0, len(ra.languages)) self.assertEquals(0, len(ra.relations)) self.assertEquals(0, len(ra.coverages)) self.assertEquals(0, len(ra.rights)) self.assertEquals(0, len(ra.contexts)) self.assertEquals('UNKNOWN', ra.aggregation) self.assertEquals('UNKNOWN', ra.resClass) self.assertEquals(0, len(ra.locations))