def testStoredFiles(self): Environment.cleanupTestFolder() targetFolder = Environment.targetFolder() # Create some files in target folder if not os.path.exists(targetFolder): os.makedirs(targetFolder) filename = os.path.join(targetFolder, 'myName_20180304_1200.zip') filename2 = os.path.join(targetFolder, 'otherName_20180304_1200.zip') with open(filename, 'w') as f: f.write('Simple test file for BRIT') with open(filename2, 'w') as f: f.write('Simple test file for BRIT') newConfig = Configuration() newConfig.definitions.append( Definition('Name1', 'dir', Environment.examplesFolder(), './C/temp1')) newTask = Task('myName', ['Name1'], targetFolder=Environment.targetFolder()) newConfig.addTask(newTask) fileNames = [] for fName in newTask.storedFiles(): fileNames.append(fName) self.assert_(len(fileNames) == 1, "Only one file should be found") self.assert_(fileNames[0] == filename, "Wrong file found")
def createFiles(self, files): # Make sure, target folder exists if not os.path.exists(Environment.targetFolder()): os.makedirs(Environment.targetFolder()) for file in files: with open(file, 'w') as f: f.write('Simple test file for BRIT')
def test_prepareTargetFolder(self): Environment.cleanupTestFolder() targetFolder = os.path.join(Environment.targetFolder(), 'sub') newTask = Task('myName', ['Name1'], targetFolder=targetFolder) newTask._prepareTargetFolder() self.assert_(os.path.exists(targetFolder), 'Targtefolder not created') Environment.cleanupTestFolder()
def testRun(self): Environment.cleanupTestFolder() Environment.setupExamplesDir() newConfig = Configuration() newConfig.definitions.append( Definition('Name1', 'dir', Environment.examplesFolder(), './C/temp1')) newTask = Task('myName', ['Name1'], targetFolder=Environment.targetFolder()) newConfig.addTask(newTask) filename = newTask.run() self.assert_(os.path.exists(Environment.targetFolder()), 'Target folder not created') self.assert_(filename <> None and filename <> '', 'No file name returned on run') Environment.cleanupTestFolder()
def test_doArchiveFileFail(self): filename = Environment.setupExamplesDir() zipTargetFile = 'dir/example' config = Configuration() config.backupDirectory = Environment.targetFolder() definition = Definition('name1', 'file', filename, zipTargetFile) config.definitions.append(definition) task = Task('myName', ['name1']) config.addTask(task) task._prepareTargetFolder() targetfile = task._getTargetFilename() archiveFile = task._prepareArchive(targetfile) # Now the actual test # I open and lock the example file to provoke an I/O error file_ = open(filename, 'a') if os.name == 'nt': msvcrt.locking(file_.fileno(), msvcrt.LK_LOCK, 0x7fffffff) with LogCapture(level=logging.WARNING) as l: task._doArchiveFile(archiveFile, filename, zipTargetFile) l.check(( 'root', 'WARNING', 'File could not be read: C:\\ProgramData\\brit_test\\examples\\example.txt Reason: I/O error(13): Permission denied' )) archiveFile.close() # Unlock and close the file if os.name == 'nt': msvcrt.locking(file_.fileno(), msvcrt.LK_UNLCK, 0x7fffffff) file_.close() self.assert_(not self.fileIsZipped(zipTargetFile, targetfile), 'File placed in zip file even though it was locked') Environment.cleanupTestFolder()
def test_doArchiveFile(self): filename = Environment.setupExamplesDir() zipTargetFile = 'dir/example' config = Configuration() config.backupDirectory = Environment.targetFolder() definition = Definition('name1', 'file', filename, zipTargetFile) config.definitions.append(definition) task = Task('myName', ['name1']) config.addTask(task) task._prepareTargetFolder() targetfile = task._getTargetFilename() archiveFile = task._prepareArchive(targetfile) # Now the actual test task._doArchiveFile(archiveFile, filename, zipTargetFile) archiveFile.close() self.assert_(self.fileIsZipped(zipTargetFile, targetfile), 'File not placed in zip file') Environment.cleanupTestFolder()
def testapplyOnFiles(self): Environment.cleanupTestFolder() targetFolder = Environment.targetFolder() filename1 = os.path.join(targetFolder, 'myName_1.zip') filename2 = os.path.join(targetFolder, 'myName_2.zip') filename3 = os.path.join(targetFolder, 'myName_3.zip') filename4 = os.path.join(targetFolder, 'myName_4.zip') files = [filename1, filename2, filename3, filename4] time_now = datetime.now() # Let's do a test with days self.createFiles(files) self.setFileTime(filename1, time_now - timedelta(minutes=1)) self.setFileTime(filename2, time_now - timedelta(days=1)) self.setFileTime(filename3, time_now - timedelta(days=1, minutes=5)) self.setFileTime(filename4, time_now - timedelta(days=3)) RS = RetainStrategy('aStrat', timedelta(days=1), "day") RS.applyOnFiles(files) self.assert_(os.path.isfile(filename1), "File 1 should not be deleted") self.assert_(os.path.isfile(filename2), "File 2 should not be deleted") self.assert_(not os.path.isfile(filename3), "File 3 should be deleted") self.assert_(os.path.isfile(filename4), "File 4 should not be deleted") Environment.cleanupTestFolder() # Let's do a test with weeks self.createFiles(files) self.setFileTime(filename1, time_now - timedelta(minutes=1)) self.setFileTime(filename2, time_now - timedelta(weeks=1)) self.setFileTime(filename3, time_now - timedelta(weeks=1, minutes=5)) self.setFileTime(filename4, time_now - timedelta(weeks=3)) RS = RetainStrategy('aStrat', timedelta(weeks=1), "week") RS.applyOnFiles(files) self.assert_(os.path.isfile(filename1), "File 1 should not be deleted") self.assert_(os.path.isfile(filename2), "File 2 should not be deleted") self.assert_(not os.path.isfile(filename3), "File 3 should be deleted") self.assert_(os.path.isfile(filename4), "File 4 should not be deleted") Environment.cleanupTestFolder() # Let's do a test with months self.createFiles(files) self.setFileTime(filename1, time_now - timedelta(minutes=1)) self.setFileTime(filename2, time_now - timedelta(days=31)) self.setFileTime(filename3, time_now - timedelta(days=31, minutes=5)) self.setFileTime(filename4, time_now - timedelta(days=31 * 3)) RS = RetainStrategy('aStrat', timedelta(days=31), "month") RS.applyOnFiles(files) self.assert_(os.path.isfile(filename1), "File 1 should not be deleted") self.assert_(os.path.isfile(filename2), "File 2 should not be deleted") self.assert_(not os.path.isfile(filename3), "File 3 should be deleted") self.assert_(os.path.isfile(filename4), "File 4 should not be deleted") Environment.cleanupTestFolder() # Finally let's do a test with years self.createFiles(files) self.setFileTime(filename1, time_now - timedelta(minutes=1)) self.setFileTime(filename2, time_now - timedelta(days=365)) self.setFileTime(filename3, time_now - timedelta(days=365, minutes=5)) self.setFileTime(filename4, time_now - timedelta(days=365 * 3)) RS = RetainStrategy('aStrat', timedelta(days=365), "year") RS.applyOnFiles(files) self.assert_(os.path.isfile(filename1), "File 1 should not be deleted") self.assert_(os.path.isfile(filename2), "File 2 should not be deleted") self.assert_(not os.path.isfile(filename3), "File 3 should be deleted") self.assert_(os.path.isfile(filename4), "File 4 should not be deleted") Environment.cleanupTestFolder()