def testExclude(self): excludePatterns = ['*~', '*.bak' , '*.old', '*/cache/*', '*/Cache/*', '*/.metadata/*', '/home/pawel/dev/python/.metadata/.plugins/*'] cases = { '/tmp/file' : False, '/tmp/file.bak' : True, '/home/pawel/.mozilla/firefox/58l7zwm5.default/Cache/E/CD/5BFABd01' : True, '/home/pawel/.google/picasa/3.0/drive_c/Documents and Settings/pawel/Ustawienia lokalne/Dane aplikacji/Google/Picasa2/cache/cacheindex_lastfetch.pmp' : True, '/home/pawel/dev/python/.metadata/.plugins/com.python.pydev.analysis/python_v1_3tswbhuj9gc4kibexhrzgzdx/v1_indexcache/twisted.test.test_iutils_1q40.v1_indexcache' : True, '/home/pawel/dev/python/encbackup/encbackup/synchronizers/__init__.py' : False, '/home/pawel/Obrazy/2011/Dania/Skagen/IMG_0093.JPG' : False, '/home/pb/synced/dev/python/.metadata/.plugins/com.python.pydev.analysis/python_v1_3tswbhuj9gc4kibexhrzgzdx/v1_indexcache/gi.overrides.Dee_5bit.v1_indexcache' : True } for case, isExcluded in cases.items(): self.assertEquals(isExcluded, FilenameMatcher.match(case, excludePatterns), 'file ' + case + ' is not filtered correctly')
def createTreeFromFilesystem(root, name, excludePatterns): tree = TreeNodeDirectory(name, 0, 0, 0, []) for filename in sorted(os.listdir(root)): path = os.path.join(root, filename) if not FilenameMatcher.match(path, excludePatterns): if os.path.isdir(path): # try: if not os.path.islink(path): node = TreeNodeDirectory.createTreeFromFilesystem(path, name + os.path.sep + filename, excludePatterns) if node.numberOfFiles > 0: tree.size = tree.size + node.size tree.lastModified = max(tree.lastModified, node.lastModified) tree.numberOfFiles = tree.numberOfFiles + node.numberOfFiles tree.files.append(node) # else: # self.logger.log('skipping symbolic link ' + path) # self._errors.append('skipping symbolic link ' + path) # except IOError, e: # self.logger.log('could not enter directory: ' + path + ':') # self.logger.log('> %s' % e) # self._errors.append('could not enter directory: ' + path + ': %s' % e) elif os.path.isfile(path): # try: size = os.path.getsize(path) if size > 0: lastModified = os.path.getmtime(path) node = TreeNodeFile(name + os.path.sep + filename, lastModified, size) tree.files.append(node) tree.size = tree.size + size tree.lastModified = max(tree.lastModified, lastModified) tree.numberOfFiles = tree.numberOfFiles + 1 #except IOError, e: # self.logger.log('could not save: ' + path + ': %s' % e) # self._errors.append('could not encrypt ' + path + ': %s' % e ) # else: # self.logger.log('skipping strange file: {0}'.format(path)) # else: # self.logger.log('ignoring: ' + path) return tree