def testLogWithoutDoubleIDs(self):
     f = open(self.stateDir+'/name.ids','w')
     f.writelines(['id:1\n','id:2\n','id:1\n'])
     f.close()
     logger = HarvesterLog(stateDir=self.stateDir, logDir=self.logDir, name= 'name')
     logger.startRepository()
     self.assertEquals(2,logger.totalIds())
     logger.uploadIdentifier('id:3')
     self.assertEquals(3,logger.totalIds())
     logger.uploadIdentifier('id:3')
     logger.uploadIdentifier('id:2')
     self.assertEquals(3,logger.totalIds())
 def testMarkDeleted(self):
     f = open(self.stateDir+'/name.stats','w')
     f.write('Started: 2005-01-02 16:12:56, Harvested/Uploaded/Total: 199/200/1650, Done: 2005-04-22 11:48:30, ResumptionToken: resumption')
     f.close()
     logger = HarvesterLog(stateDir=self.stateDir, logDir=self.logDir, name='name')
     self.assertEquals('resumption', logger._state.token)
     logger.markDeleted()
     logger.close()
     logger = HarvesterLog(stateDir=self.stateDir, logDir=self.logDir, name='name')
     self.assertEquals(None, logger._state.token)
     self.assertEquals(None, logger._state.from_)
     self.assertEquals(0, logger.totalIds())
    def testLogIgnoredIdentifierWarning(self):
        logger = HarvesterLog(stateDir=self.stateDir, logDir=self.logDir, name='name')
        logger.startRepository()
        logger.notifyHarvestedRecord('repoid:oai:bla/bla')
        logger.logInvalidData('repoid:oai:bla/bla', 'bla/bla')
        self.assertEquals('', open(self.logDir + '/name.events').read())
        logger.logIgnoredIdentifierWarning('repoid:oai:bla/bla')
        self.assertTrue(open(self.logDir + '/name.events').read().endswith("\tWARNING\t[repoid:oai:bla/bla]\tIGNORED\n"))
        self.assertEquals(1, logger.totalInvalidIds())

        logger.notifyHarvestedRecord('repoid:oai:bla/bla')
        self.assertEquals(0, logger.totalInvalidIds())
        logger.uploadIdentifier('repoid:oai:bla/bla')
        self.assertEquals(1, logger.totalIds())