class unittest_DiskReader(unittest.TestCase): def setUp(self, logFile='log/DiskReader.log'): self.logger = Logger(logFile, 'DEBUG', 'Sub') self.logger = self.logger.getLogger() self.reader = DiskReader('txq/test/', 20, False, 5, False, True, self.logger) def test_DiskReader(self): self.reader.read() #print self.reader.files self.assertEqual(self.reader.files, [ 'txq/test//0/2012053108/file-F', 'txq/test//1/2012053108/file-E', 'txq/test//2/2012053108/file-D', 'txq/test//3/2012053108/file-A', 'txq/test//3/2012053108/file-C', 'txq/test//4/2012053108/file-B', 'txq/test//5/2012053108/file-A' ]) #print self.reader.getFilenamesAndContent() self.assertEqual(self.reader.getFilenamesAndContent(), [('', 'txq/test//0/2012053108/file-F'), ('file E', 'txq/test//1/2012053108/file-E'), ('', 'txq/test//2/2012053108/file-D'), ('file A', 'txq/test//3/2012053108/file-A'), ('file C', 'txq/test//3/2012053108/file-C'), ('', 'txq/test//4/2012053108/file-B'), ('', 'txq/test//5/2012053108/file-A')])
class unittest_DiskReader(unittest.TestCase): def setUp(self,logFile='log/DiskReader.log'): self.logger = Logger(logFile, 'DEBUG', 'Sub') self.logger = self.logger.getLogger() self.reader = DiskReader('txq/test/', 20, False, 5, False,True,self.logger) def test_DiskReader(self): self.reader.read() #print self.reader.files self.assertEqual(self.reader.files,['txq/test//0/2012053108/file-F', 'txq/test//1/2012053108/file-E', 'txq/test//2/2012053108/file-D', 'txq/test//3/2012053108/file-A', 'txq/test//3/2012053108/file-C', 'txq/test//4/2012053108/file-B', 'txq/test//5/2012053108/file-A']) #print self.reader.getFilenamesAndContent() self.assertEqual(self.reader.getFilenamesAndContent(),[('', 'txq/test//0/2012053108/file-F'), ('file E', 'txq/test//1/2012053108/file-E'), ('', 'txq/test//2/2012053108/file-D'), ('file A', 'txq/test//3/2012053108/file-A'), ('file C', 'txq/test//3/2012053108/file-C'), ('', 'txq/test//4/2012053108/file-B'), ('', 'txq/test//5/2012053108/file-A')])
def doSpecialOrders(self, path): # Stop, restart, reload, deconnect, connect could be put here? reader = DiskReader(path) reader.read() dataFromFiles = reader.getFilenamesAndContent() for index in range(len(dataFromFiles)): words = dataFromFiles[index][0].strip().split() self.logger.info("Special Order: %s" % (dataFromFiles[index][0].strip())) if words[0] == 'outCSN': if words[1] == '+': self.nextCSN() self.logger.info("CSN = %s" % self.CSN) elif words[1] == '-': # This case is only done for testing purpose. It is not complete and not correct when CSN # value is 0 or 1 self.nextCSN(str(int(self.CSN) - 2)) self.logger.info("CSN = %s" % self.CSN) elif words[1] == 'print': self.logger.info("CSN = %s" % self.CSN) else: # We suppose it's a number, we don't verify!! self.nextCSN(words[1]) self.logger.info("CSN = %s" % self.CSN) elif words[0] == 'inCSN': if words[1] == '+': self.calcWaitedTID(self.waitedTID) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[1] == '-': # This case is only done for testing purpose. It is not complete and not correct when waited TID # value is 0 or 1 self.calcWaitedTID(self.otherStationID + "%04d" % (int(self.waitedTID[3:]) - 2)) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[1] == 'print': self.logger.info("Waited TID = %s" % self.waitedTID) else: # We suppose it's a number, we don't verify!! self.calcWaitedTID(self.otherStationID + "%04d" % int(words[1])) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[0] == 'ackWaited': if words[1] == 'print': self.logger.info("Waiting for ack: %s" % self.getWaitingForAck()) else: self.setWaitingForAck(words[1]) self.incrementSendingInfos() elif words[0] == 'ackNotWaited': self.setWaitingForAck(None) self.resetSendingInfos() self.updatePartsToSend() elif words[0] == 'ackUsed': self.ackUsed = words[1] == 'True' or words[1] == 'true' elif words[0] == 'printState': self.logger.info(self.state.infos()) else: pass try: os.unlink(dataFromFiles[0][1]) self.logger.debug("%s has been erased", os.path.basename(dataFromFiles[index][1])) except OSError, e: (type, value, tb) = sys.exc_info() self.logger.error("Unable to unlink %s ! Type: %s, Value: %s" % (dataFromFiles[index][1], type, value))
def doSpecialOrders(self, path): # Stop, restart, reload, deconnect, connect could be put here? reader = DiskReader(path) reader.read() dataFromFiles = reader.getFilenamesAndContent() for index in range(len(dataFromFiles)): words = dataFromFiles[index][0].strip().split() self.logger.info("Special Order: %s" % (dataFromFiles[index][0].strip())) if words[0] == 'outCSN': if words[1] == '+': self.nextCSN() self.logger.info("CSN = %s" % self.CSN) elif words[1] == '-': # This case is only done for testing purpose. It is not complete and not correct when CSN # value is 0 or 1 self.nextCSN(str(int(self.CSN) - 2)) self.logger.info("CSN = %s" % self.CSN) elif words[1] == 'print': self.logger.info("CSN = %s" % self.CSN) else: # We suppose it's a number, we don't verify!! self.nextCSN(words[1]) self.logger.info("CSN = %s" % self.CSN) elif words[0] == 'inCSN': if words[1] == '+': self.calcWaitedTID(self.waitedTID) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[1] == '-': # This case is only done for testing purpose. It is not complete and not correct when waited TID # value is 0 or 1 self.calcWaitedTID(self.otherStationID + "%04d" % (int(self.waitedTID[3:]) - 2)) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[1] == 'print': self.logger.info("Waited TID = %s" % self.waitedTID) else: # We suppose it's a number, we don't verify!! self.calcWaitedTID(self.otherStationID + "%04d" % int(words[1])) self.logger.info("Waited TID = %s" % self.waitedTID) elif words[0] == 'ackWaited': if words[1] == 'print': self.logger.info("Waiting for ack: %s" % self.getWaitingForAck()) else: self.setWaitingForAck(words[1]) self.incrementSendingInfos() elif words[0] == 'ackNotWaited': self.setWaitingForAck(None) self.resetSendingInfos() self.updatePartsToSend() elif words[0] == 'ackUsed': self.ackUsed = words[1] == 'True' or words[1] == 'true' elif words[0] == 'printState': self.logger.info(self.state.infos()) else: pass try: os.unlink(dataFromFiles[0][1]) self.logger.debug("%s has been erased", os.path.basename(dataFromFiles[index][1])) except OSError, e: (type, value, tb) = sys.exc_info() self.logger.error("Unable to unlink %s ! Type: %s, Value: %s" % (dataFromFiles[index][1], type, value))