def testDeleteWithoutOaiEnvelope(self): recordFile = join(self.tempdir, 'id.record') os.system('touch ' + recordFile) self.assertTrue(isfile(recordFile)) self.uploader._filenameFor = lambda *args: recordFile self.target.oaiEnvelope = False repository = CallTrace('Repository') repository.repositoryGroupId = 'groupId' repository.id = 'repositoryId' upload = Upload(repository=repository) upload.id = 'id' self.uploader.delete(upload) DELETED_RECORDS = join(self.tempdir, 'deleted_records') self.assertTrue(isfile(DELETED_RECORDS)) self.assertEquals(['id\n'], open(DELETED_RECORDS).readlines()) self.assertFalse(isfile(recordFile)) upload.id = 'second:id' self.uploader.delete(upload) self.assertEquals(['id\n', 'second:id\n'], open(DELETED_RECORDS).readlines())
def createUpload(about=None): repository = CallTrace('repository') repository.id = 'repoId' upload = Upload(repository=repository, oaiResponse=oaiResponse(about=about)) upload.id = 'id' return upload
def testDeleteWithoutOaiEnvelope(self): recordFile = join(self.tempdir, 'id.record') os.system('touch ' + recordFile) self.assertTrue(isfile(recordFile)) self.uploader._filenameFor = lambda *args: recordFile self.target.oaiEnvelope = False repository = CallTrace('Repository') repository.repositoryGroupId = 'groupId' repository.id = 'repositoryId' upload = Upload(repository=repository) upload.id = 'id' self.uploader.delete(upload) DELETED_RECORDS = join(self.tempdir, 'deleted_records') self.assertTrue(isfile(DELETED_RECORDS)) with open(DELETED_RECORDS) as fp: self.assertEqual(['id\n'], fp.readlines()) self.assertFalse(isfile(recordFile)) upload.id = 'second:id' self.uploader.delete(upload) with open(DELETED_RECORDS) as fp: self.assertEqual(['id\n', 'second:id\n'], fp.readlines())
def testDeleteWithOaiEnvelope(self): RECORD_FILENAME = join(self.tempdir, 'id.record') self.uploader._filenameFor = lambda *args: RECORD_FILENAME self.uploader.tznow = lambda: "VANDAAG_EN_NU" self.target.oaiEnvelope = True repository = CallTrace('Repository') repository.repositoryGroupId = 'groupId' repository.metadataPrefix = 'oai_dc' repository.baseurl = "http://repository" repository.id = 'repositoryId' upload = Upload(repository=repository, oaiResponse=oaiResponse(identifier='id.record', deleted=True)) self.assertFalse(isfile(RECORD_FILENAME)) self.uploader.delete(upload) self.assertTrue(isfile(RECORD_FILENAME)) self.assertEqualsWS("""<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <responseDate>VANDAAG_EN_NU</responseDate> <request verb="GetRecord" metadataPrefix="oai_dc" identifier="id.record">http://repository</request> <GetRecord> <record> <header status="deleted"> <identifier>id.record</identifier> <datestamp>2005-08-29T07:08:09Z</datestamp> </header> </record> </GetRecord> </OAI-PMH>""", open(RECORD_FILENAME).read())
def testDeleteWithOaiEnvelope(self): RECORD_FILENAME = join(self.tempdir, 'id.record') self.uploader._filenameFor = lambda *args: RECORD_FILENAME self.uploader.tznow = lambda: "VANDAAG_EN_NU" self.target.oaiEnvelope = True repository = CallTrace('Repository') repository.repositoryGroupId = 'groupId' repository.metadataPrefix = 'oai_dc' repository.baseurl = "http://repository" repository.id = 'repositoryId' upload = Upload(repository=repository, oaiResponse=oaiResponse(identifier='id.record', deleted=True)) self.assertFalse(isfile(RECORD_FILENAME)) self.uploader.delete(upload) self.assertTrue(isfile(RECORD_FILENAME)) with open(RECORD_FILENAME) as f: self.assertEqualsWS( """<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <responseDate>VANDAAG_EN_NU</responseDate> <request verb="GetRecord" metadataPrefix="oai_dc" identifier="id.record">http://repository</request> <GetRecord> <record> <header status="deleted"> <identifier>id.record</identifier> <datestamp>2005-08-29T07:08:09Z</datestamp> </header> </record> </GetRecord> </OAI-PMH>""", f.read())
def createUpload(*args, **kwargs): calls.append(1) if len(calls) == 1: raise DataMapAssertionException('O no, it\'s a snake!!') upload = CallTrace('upload') upload.id = 'id' upload.isDeleted = True return upload
def getFilename(anId): repository = CallTrace('Repository') repository.repositoryGroupId = 'groupId' repository.id = 'repositoryId' upload = Upload(repository=repository) upload.id = anId return self.uploader._filenameFor(upload)
def testMapping(self): upload = CallTrace('upload') upload.id = 'id' upload.isDeleted = True mapping = CallTrace() mapping.returnValues['createUpload'] = upload self.harvest = OnlineHarvest(self.output) data = 'file://%s/mocktud/00002.xml' % self._testpath self.harvest.performMapping(None, data, mapping) self.assertEqual(['addObserver', 'mappingInfo', 'createUpload', 'createUpload', 'createUpload'], [m.name for m in mapping.calledMethods]) for createUploadMethod in mapping.calledMethods[2:]: self.assertTrue(createUploadMethod.kwargs['doAsserts'])
def testMapping(self): upload = CallTrace('upload') upload.id = 'id' upload.isDeleted = True mapping = CallTrace() mapping.returnValues['createUpload'] = upload self.harvest = OnlineHarvest(self.output) data = 'file://%s/mocktud/00002.xml' % self._testpath self.harvest.performMapping(None, data, mapping) self.assertEquals(['addObserver', 'mappingInfo', 'createUpload', 'createUpload', 'createUpload'], [m.name for m in mapping.calledMethods]) for createUploadMethod in mapping.calledMethods[2:]: self.assertTrue(createUploadMethod.kwargs['doAsserts'])