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())
Пример #6
0
 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)
Пример #8
0
 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 createUpload(about=None):
    repository = CallTrace('repository')
    repository.id = 'repoId'

    upload = Upload(repository=repository,
                    oaiResponse=oaiResponse(about=about))
    upload.id = 'id'
    return upload
Пример #11
0
 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'])
Пример #12
0
 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'])