def testProvenance(self): observable = Observable() provenance = OaiProvenance( nsMap={'oai_dc': "http://www.openarchives.org/OAI/2.0/"}, baseURL=('meta', '/meta/repository/baseurl/text()'), harvestDate=('meta', '/meta/repository/harvestDate/text()'), metadataNamespace=('meta', '/meta/repository/metadataNamespace/text()'), identifier=('header', '/oai_dc:header/oai_dc:identifier/text()'), datestamp=('header', '/oai_dc:header/oai_dc:datestamp/text()')) observable.addObserver(provenance) observer = MockStorage() provenance.addObserver(observer) result = asString(observable.any.provenance("recordId")) self.assertEqualsWS( """<provenance xmlns="http://www.openarchives.org/OAI/2.0/provenance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd"> <originDescription harvestDate="HARVESTDATE" altered="true"> <baseURL>BASEURL</baseURL> <identifier>recordId</identifier> <datestamp>DATESTAMP</datestamp> <metadataNamespace>METADATANAMESPACE</metadataNamespace> </originDescription> </provenance>""", result)
def testProvenance(self): observable = Observable() provenance = OaiProvenance( nsMap = {'oai_dc': "http://www.openarchives.org/OAI/2.0/"}, baseURL = ('meta', '/meta/repository/baseurl/text()'), harvestDate = ('meta', '/meta/repository/harvestDate/text()'), metadataNamespace = ('meta', '/meta/repository/metadataNamespace/text()'), identifier = ('header','/oai_dc:header/oai_dc:identifier/text()'), datestamp = ('header', '/oai_dc:header/oai_dc:datestamp/text()') ) observable.addObserver(provenance) observer = MockStorage() provenance.addObserver(observer) result = asString(observable.any.provenance("recordId")) self.assertEqualsWS("""<provenance xmlns="http://www.openarchives.org/OAI/2.0/provenance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd"> <originDescription harvestDate="HARVESTDATE" altered="true"> <baseURL>BASEURL</baseURL> <identifier>recordId</identifier> <datestamp>DATESTAMP</datestamp> <metadataNamespace>METADATANAMESPACE</metadataNamespace> </originDescription> </provenance>""", result)
def testNoOutputIfValueMissing(self): observable = Observable() provenance = OaiProvenance( nsMap={}, baseURL=('meta', 'meta/repository/baseurl'), harvestDate=('meta', 'meta/does/not/exist'), metadataNamespace=('meta', 'meta/repository/metadataNamespace'), identifier=('header', 'header/identifier'), datestamp=('header', 'header/datestamp')) observable.addObserver(provenance) observer = MockStorage() provenance.addObserver(observer) result = asString(observable.any.provenance("recordId")) self.assertEqual('', result)
def testNoOutputIfValueMissing(self): observable = Observable() provenance = OaiProvenance( nsMap = {}, baseURL = ('meta', 'meta/repository/baseurl'), harvestDate = ('meta', 'meta/does/not/exist'), metadataNamespace = ('meta', 'meta/repository/metadataNamespace'), identifier = ('header','header/identifier'), datestamp = ('header', 'header/datestamp') ) observable.addObserver(provenance) observer = MockStorage() provenance.addObserver(observer) result = asString(observable.any.provenance("recordId")) self.assertEquals('', result)
def testCacheStorageResults(self): observable = Observable() provenance = OaiProvenance( nsMap={}, baseURL=('meta', 'meta/repository/baseurl/text()'), harvestDate=('meta', 'meta/repository/harvestDate/text()'), metadataNamespace=('meta', 'meta/repository/metadataNamespace/text()'), identifier=('header', 'header/identifier/text()'), datestamp=('header', 'header/datestamp/text()')) observable.addObserver(provenance) storage = MockStorage() observer = storage provenance.addObserver(observer) self.assertEqual(0, storage.timesCalled) asString(observable.any.provenance("recordId")) self.assertEqual(2, storage.timesCalled)
def testCacheStorageResults(self): observable = Observable() provenance = OaiProvenance( nsMap = {}, baseURL = ('meta', 'meta/repository/baseurl/text()'), harvestDate = ('meta', 'meta/repository/harvestDate/text()'), metadataNamespace = ('meta', 'meta/repository/metadataNamespace/text()'), identifier = ('header','header/identifier/text()'), datestamp = ('header', 'header/datestamp/text()') ) observable.addObserver(provenance) storage = MockStorage() observer = storage provenance.addObserver(observer) self.assertEquals(0, storage.timesCalled) asString(observable.any.provenance("recordId")) self.assertEquals(2, storage.timesCalled)