def test_whitelisted_speed(self): """Benchmark the speed of whitelisted() It is called frequently, so the speed is important.""" d = '/usr/bin' whitelist = [('file', '/home/foo'), ('folder', '/home/folder')] if 'nt' == os.name: d = expandvars('%windir%\system32') whitelist = [('file', r'c:\\filename'), ('folder', r'c:\\folder')] reps = 20 paths = [p for p in children_in_directory(d, True)] paths = paths[:1000] # truncate self.assertGreater(len(paths), 10) old_whitelist = options.get_whitelist_paths() options.set_whitelist_paths(whitelist) t0 = time.time() for i in xrange(0, reps): for p in paths: _ = whitelisted(p) t1 = time.time() logger.info('whitelisted() with {} repetitions and {} paths took {:.3g} seconds '.format( reps, len(paths), t1 - t0)) options.set_whitelist_paths(old_whitelist)
def test_whitelisted_speed(self): """Benchmark the speed of whitelisted() It is called frequently, so the speed is important.""" d = '/usr/bin' whitelist = [('file', '/home/foo'), ('folder', '/home/folder')] if 'nt' == os.name: d = expandvars('%windir%\system32') whitelist = [('file', r'c:\\filename'), ('folder', r'c:\\folder')] reps = 20 paths = [p for p in children_in_directory(d, True)] paths = paths[:1000] # truncate self.assertGreater(len(paths), 10) old_whitelist = options.get_whitelist_paths() options.set_whitelist_paths(whitelist) t0 = time.time() for i in xrange(0, reps): for p in paths: _ = whitelisted(p) t1 = time.time() logger.info('whitelisted() with {} repetitions and {} paths took {:.3g} seconds '.format( reps, len(paths), t1 - t0)) options.set_whitelist_paths(old_whitelist)
def add_whitelist_file_cb(button): """Callback for adding a file""" title = _("Choose a file") pathname = GuiBasic.browse_file(self.parent, title) if pathname: for this_pathname in pathnames: if pathname == this_pathname[1]: logger.warning("'%s' already exists in whitelist", pathname) return liststore.append([_('File'), pathname]) pathnames.append(['file', pathname]) options.set_whitelist_paths(pathnames)
def add_whitelist_file_cb(button): title = _("Choose a file") pathname = GuiBasic.browse_file(self.parent, title) if pathname: for this_pathname in pathnames: if pathname == this_pathname[1]: logger.warning("'%s' already exists in whitelist", pathname) return liststore.append([_('File'), pathname]) pathnames.append(['file', pathname]) options.set_whitelist_paths(pathnames)
def remove_whitelist_path_cb(button): """Callback for removing a path""" treeselection = treeview.get_selection() (model, _iter) = treeselection.get_selected() if None == _iter: # nothing selected return pathname = model[_iter][1] liststore.remove(_iter) for this_pathname in pathnames: if this_pathname[1] == pathname: pathnames.remove(this_pathname) options.set_whitelist_paths(pathnames)
def remove_whitelist_path_cb(button): """Callback for removing a path""" treeselection = treeview.get_selection() (model, _iter) = treeselection.get_selected() if None == _iter: # nothing selected return pathname = model[_iter][1] liststore.remove(_iter) for this_pathname in pathnames: if this_pathname[1] == pathname: pathnames.remove(this_pathname) options.set_whitelist_paths(pathnames)
def add_whitelist_folder_cb(button): """Callback for adding a folder""" title = _("Choose a folder") pathname = GuiBasic.browse_folder(self.parent, title, multiple=False, stock_button=gtk.STOCK_ADD) if pathname: for this_pathname in pathnames: if pathname == this_pathname[1]: logger.warning("'%s' already exists in whitelist", pathname) return liststore.append([_('Folder'), pathname]) pathnames.append(['folder', pathname]) options.set_whitelist_paths(pathnames)
def add_whitelist_folder_cb(button): title = _("Choose a folder") pathname = GuiBasic.browse_folder(self.parent, title, multiple=False, stock_button=gtk.STOCK_ADD) if pathname: for this_pathname in pathnames: if pathname == this_pathname[1]: logger.warning("'%s' already exists in whitelist", pathname) return liststore.append([_('Folder'), pathname]) pathnames.append(['folder', pathname]) options.set_whitelist_paths(pathnames)
def test_whitelisted(self): """Unit test for whitelisted()""" # setup old_whitelist = options.get_whitelist_paths() whitelist = [('file', '/home/foo'), ('folder', '/home/folder')] options.set_whitelist_paths(whitelist) self.assertEqual(set(whitelist), set(options.get_whitelist_paths())) # test self.assertFalse(whitelisted('')) self.assertFalse(whitelisted('/')) self.assertFalse(whitelisted('/home/foo2')) self.assertFalse(whitelisted('/home/fo')) self.assertTrue(whitelisted('/home/foo')) self.assertTrue(whitelisted('/home/folder')) if 'posix' == os.name: self.assertTrue(whitelisted('/home/folder/')) self.assertTrue(whitelisted('/home/folder/file')) self.assertFalse(whitelisted('/home/fold')) self.assertFalse(whitelisted('/home/folder2')) if 'nt' == os.name: whitelist = [('folder', 'D:\\'), ( 'file', 'c:\\windows\\foo.log'), ('folder', 'e:\\users')] options.set_whitelist_paths(whitelist) self.assertTrue(whitelisted('e:\\users')) self.assertTrue(whitelisted('e:\\users\\')) self.assertTrue(whitelisted('e:\\users\\foo.log')) self.assertFalse(whitelisted('e:\\users2')) # case insensitivity self.assertTrue(whitelisted('C:\\WINDOWS\\FOO.LOG')) self.assertTrue(whitelisted('D:\\USERS')) # drives letters have the separator at the end while most paths # don't self.assertTrue(whitelisted('D:\\FOLDER\\FOO.LOG')) # test blank options.set_whitelist_paths([]) self.assertFalse(whitelisted('/home/foo')) self.assertFalse(whitelisted('/home/folder')) self.assertFalse(whitelisted('/home/folder/file')) options.config.remove_section('whitelist/paths') self.assertFalse(whitelisted('/home/foo')) self.assertFalse(whitelisted('/home/folder')) self.assertFalse(whitelisted('/home/folder/file')) # clean up options.set_whitelist_paths(old_whitelist) self.assertEqual( set(old_whitelist), set(options.get_whitelist_paths()))
def test_whitelisted(self): """Unit test for whitelisted()""" # setup old_whitelist = options.get_whitelist_paths() whitelist = [('file', '/home/foo'), ('folder', '/home/folder')] options.set_whitelist_paths(whitelist) self.assertEqual(set(whitelist), set(options.get_whitelist_paths())) # test self.assertFalse(whitelisted('')) self.assertFalse(whitelisted('/')) self.assertFalse(whitelisted('/home/foo2')) self.assertFalse(whitelisted('/home/fo')) self.assertTrue(whitelisted('/home/foo')) self.assertTrue(whitelisted('/home/folder')) if 'posix' == os.name: self.assertTrue(whitelisted('/home/folder/')) self.assertTrue(whitelisted('/home/folder/file')) self.assertFalse(whitelisted('/home/fold')) self.assertFalse(whitelisted('/home/folder2')) if 'nt' == os.name: whitelist = [('folder', 'D:\\'), ('file', 'c:\\windows\\foo.log'), ('folder', 'e:\\users')] options.set_whitelist_paths(whitelist) self.assertTrue(whitelisted('e:\\users')) self.assertTrue(whitelisted('e:\\users\\')) self.assertTrue(whitelisted('e:\\users\\foo.log')) self.assertFalse(whitelisted('e:\\users2')) # case insensitivity self.assertTrue(whitelisted('C:\\WINDOWS\\FOO.LOG')) self.assertTrue(whitelisted('D:\\USERS')) # drives letters have the seperator at the end while most paths # don't self.assertTrue(whitelisted('D:\\FOLDER\\FOO.LOG')) # test blank options.set_whitelist_paths([]) self.assertFalse(whitelisted('/home/foo')) self.assertFalse(whitelisted('/home/folder')) self.assertFalse(whitelisted('/home/folder/file')) options.config.remove_section('whitelist/paths') self.assertFalse(whitelisted('/home/foo')) self.assertFalse(whitelisted('/home/folder')) self.assertFalse(whitelisted('/home/folder/file')) # clean up options.set_whitelist_paths(old_whitelist) self.assertEqual(set(old_whitelist), set(options.get_whitelist_paths()))
def test_whitelisted_posix_symlink(self): """Symlink test for whitelisted_posix()""" # setup old_whitelist = options.get_whitelist_paths() tmpdir = os.path.join(self.tempdir, 'bleachbit-whitelist') os.mkdir(tmpdir) realpath = self.write_file('real') linkpath = os.path.join(tmpdir, 'link') os.symlink(realpath, linkpath) self.assertExists(realpath) self.assertExists(linkpath) # test 1: the real path is whitelisted whitelist = [('file', realpath)] options.set_whitelist_paths(whitelist) self.assertFalse(whitelisted(tmpdir)) self.assertTrue(whitelisted(realpath)) self.assertTrue(whitelisted(linkpath)) # test 2: the link is whitelisted whitelist = [('file', linkpath)] options.set_whitelist_paths(whitelist) self.assertFalse(whitelisted(tmpdir)) self.assertFalse(whitelisted(realpath)) self.assertTrue(whitelisted(linkpath)) options.set_whitelist_paths(old_whitelist)
def test_whitelisted_posix_symlink(self): """Symlink test for whitelisted_posix()""" # setup old_whitelist = options.get_whitelist_paths() tmpdir = os.path.join(self.tempdir, 'bleachbit-whitelist') os.mkdir(tmpdir) realpath = self.write_file('real') linkpath = os.path.join(tmpdir, 'link') os.symlink(realpath, linkpath) self.assertExists(realpath) self.assertExists(linkpath) # test 1: the real path is whitelisted whitelist = [('file', realpath)] options.set_whitelist_paths(whitelist) self.assertFalse(whitelisted(tmpdir)) self.assertTrue(whitelisted(realpath)) self.assertTrue(whitelisted(linkpath)) # test 2: the link is whitelisted whitelist = [('file', linkpath)] options.set_whitelist_paths(whitelist) self.assertFalse(whitelisted(tmpdir)) self.assertFalse(whitelisted(realpath)) self.assertTrue(whitelisted(linkpath)) options.set_whitelist_paths(old_whitelist)