def setup_fake(f1_filename = None): """Setup the test environment""" dirname = tempfile.mkdtemp(suffix='bleachbit_test_winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') file(f1, 'w').write('') dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') file(f2, 'w').write('') fbak = os.path.join(dirname, 'deleteme.bak') file(fbak, 'w').write('') self.assertTrue(os.path.exists(f1)) self.assertTrue(os.path.exists(f2)) self.assertTrue(os.path.exists(fbak)) hkey = _winreg.CreateKey( _winreg.HKEY_CURRENT_USER, subkey ) hkey.Close() self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return (dirname, f1, f2, fbak)
def setup_fake(self, f1_filename=None): """Setup the test environment""" subkey = 'Software\\BleachBit\\DeleteThisKey\\AndThisKey' dirname = tempfile.mkdtemp(prefix='bleachbit-test-winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') open(f1, 'w').close() dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') open(f2, 'w').close() fbak = os.path.join(dirname, 'deleteme.bak') open(fbak, 'w').close() self.assertExists(f1) self.assertExists(f2) self.assertExists(fbak) CreateSubKey(subkey) self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return dirname, f1, f2, fbak
def setup_fake(self, f1_filename=None): """Setup the test environment""" subkey = 'Software\\BleachBit\\DeleteThisKey\\AndThisKey' # put ampersand in directory name to test # https://github.com/bleachbit/bleachbit/issues/308 dirname = tempfile.mkdtemp(prefix='bleachbit-test-winapp&') fname1 = os.path.join(dirname, f1_filename or 'deleteme.log') open(fname1, 'w').close() dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) fname2 = os.path.join(dirname2, 'deleteme.log') open(fname2, 'w').close() fbak = os.path.join(dirname, 'deleteme.bak') open(fbak, 'w').close() self.assertExists(fname1) self.assertExists(fname2) self.assertExists(fbak) create_sub_key(subkey) self.assertTrue(detect_registry_key(KEYFULL)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return dirname, fname1, fname2, fbak
def setup_fake(self, f1_filename=None): """Setup the test environment""" subkey = 'Software\\BleachBit\\DeleteThisKey\\AndThisKey' dirname = tempfile.mkdtemp(prefix='bleachbit-test-winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') file(f1, 'w').write('') dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') file(f2, 'w').write('') fbak = os.path.join(dirname, 'deleteme.bak') file(fbak, 'w').write('') self.assertExists(f1) self.assertExists(f2) self.assertExists(fbak) CreateSubKey(subkey) self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return (dirname, f1, f2, fbak)
def setup_fake(f1_filename=None): """Setup the test environment""" dirname = tempfile.mkdtemp(suffix='bleachbit_test_winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') file(f1, 'w').write('') dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') file(f2, 'w').write('') fbak = os.path.join(dirname, 'deleteme.bak') file(fbak, 'w').write('') self.assertTrue(os.path.exists(f1)) self.assertTrue(os.path.exists(f2)) self.assertTrue(os.path.exists(fbak)) hkey = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, subkey) hkey.Close() self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return (dirname, f1, f2, fbak)
def test_fake(self): """Test with fake file""" # reuse this path to store a winapp2.ini file in (ini_h, self.ini_fn) = tempfile.mkstemp( suffix='.ini', prefix='winapp2') os.close(ini_h) # a set of tests # this map explains what each position in the test tuple means # 0=line to write directly to winapp2.ini # 1=filename1 to place in fake environment (default=deleteme.log) # 2=auto-hide before cleaning # 3=dirname exists after cleaning # 4=filename1 (.\deleteme.log) exists after cleaning # 5=sub\deleteme.log exists after cleaning # 6=.\deleteme.bak exists after cleaning # 7=auto-hide after cleaning tests = [ # single file ('FileKey1=%s|deleteme.log', None, False, True, False, True, True, True), # single file, case matching should be insensitive ('FileKey1=%s|dEleteme.LOG', None, False, True, False, True, True, True), # special characters for XML ('FileKey1=%s|special_chars_&-\'.txt', 'special_chars_&-\'.txt', False, True, False, True, True, True), # *.log ('FileKey1=%s|*.LOG', None, False, True, False, True, True, True), # semicolon separates different file types ('FileKey1=%s|*.log;*.bak', None, False, True, False, True, False, True), # *.* ('FileKey1=%s|*.*', None, False, True, False, True, False, True), # recurse *.* ('FileKey1=%s|*.*|RECURSE', None, False, True, False, False, False, True), # recurse *.log ('FileKey1=%s|*.log|RECURSE', None, False, True, False, False, True, True), # remove self *.*, this removes the directory ('FileKey1=%s|*.*|REMOVESELF', None, False, False, False, False, False, True), ] # Add positive detection, where the detection believes the application is present, # to all the tests, which are also positive. new_tests = [] for test in tests: for detect in ( "\nDetectFile=%%APPDATA%%\\Microsoft", "\nDetectFile1=%%APPDATA%%\\Microsoft\nDetectFile2=%%APPDATA%%\\does_not_exist", "\nDetectFile1=%%APPDATA%%\\does_not_exist\nDetectFile2=%%APPDATA%%\\Microsoft", "\nDetect=HKCU\\Software\\Microsoft", # Below checks that a space is OK in the registry key "\nDetect=HKCU\\Software\\Microsoft\\Command Processor", "\nDetect1=HKCU\\Software\\Microsoft\nDetect2=HKCU\\Software\\does_not_exist", "\nDetect1=HKCU\\Software\\does_not_exist\nDetect2=HKCU\\Software\\Microsoft"): new_ini = test[0] + detect new_test = [new_ini, ] + [x for x in test[1:]] new_tests.append(new_test) positive_tests = tests + new_tests # execute positive tests for test in positive_tests: print('positive test: ', test) (dirname, f1, f2, fbak) = self.setup_fake(test[1]) cleaner = self.ini2cleaner(test[0] % dirname) self.assertEqual(test[2], cleaner.auto_hide()) self.run_all(cleaner, False) self.run_all(cleaner, True) self.assertCondExists(test[3], dirname) self.assertCondExists(test[4], f1) self.assertCondExists(test[5], f2) self.assertCondExists(test[6], fbak) self.assertEqual(test[7], cleaner.auto_hide()) shutil.rmtree(dirname, True) # negative tests where the application detect believes the application # is absent for test in tests: for detect in ( "\nDetectFile=c:\\does_not_exist", # special characters for XML "\nDetectFile=c:\\does_not_exist_special_chars_&'", "\nDetectFile1=c:\\does_not_exist1\nDetectFile2=c:\\does_not_exist2", "\nDetect=HKCU\\Software\\does_not_exist", "\nDetect=HKCU\\Software\\does_not_exist_&'", "\nDetect1=HKCU\\Software\\does_not_exist1\nDetect2=HKCU\\Software\\does_not_exist1"): new_ini = test[0] + detect t = [new_ini, ] + [x for x in test[1:]] print('negative test', t) # execute the test (dirname, f1, f2, fbak) = self.setup_fake() cleaner = self.ini2cleaner(t[0] % dirname, False) self.assertRaises(StopIteration, cleaner.next) shutil.rmtree(dirname, True) # registry key, basic (dirname, f1, f2, fbak) = self.setup_fake() cleaner = self.ini2cleaner('RegKey1=%s' % keyfull) self.run_all(cleaner, False) self.assertTrue(detect_registry_key(keyfull)) self.run_all(cleaner, True) self.assertFalse(detect_registry_key(keyfull)) shutil.rmtree(dirname, True) # check for parse error with ampersand (dirname, f1, f2, fbak) = self.setup_fake() cleaner = self.ini2cleaner( 'RegKey1=HKCU\\Software\\PeanutButter&Jelly') self.run_all(cleaner, False) self.run_all(cleaner, True) shutil.rmtree(dirname, True)
def test_fake(self): """Test with fake file""" ini_fn = None keyfull = 'HKCU\\Software\\BleachBit\\DeleteThisKey' subkey = 'Software\\BleachBit\\DeleteThisKey\\AndThisKey' def setup_fake(f1_filename = None): """Setup the test environment""" dirname = tempfile.mkdtemp(suffix='bleachbit_test_winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') file(f1, 'w').write('') dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') file(f2, 'w').write('') fbak = os.path.join(dirname, 'deleteme.bak') file(fbak, 'w').write('') self.assertTrue(os.path.exists(f1)) self.assertTrue(os.path.exists(f2)) self.assertTrue(os.path.exists(fbak)) hkey = _winreg.CreateKey( _winreg.HKEY_CURRENT_USER, subkey ) hkey.Close() self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return (dirname, f1, f2, fbak) def ini2cleaner(filekey, do_next = True): ini = file(ini_fn, 'w') ini.write('[someapp]\n') ini.write('LangSecRef=3021\n') ini.write(filekey) ini.write('\n') ini.close() self.assertTrue(os.path.exists(ini_fn)) if do_next: return Winapp(ini_fn).get_cleaners().next() else: return Winapp(ini_fn).get_cleaners() # reuse this path to store a winapp2.ini file in import tempfile (ini_h, ini_fn) = tempfile.mkstemp(suffix='.ini', prefix='winapp2') os.close(ini_h) # a set of tests tests = [ # single file ( 'FileKey1=%s|deleteme.log', None, False, True, False, True, True, True ), # special characters for XML ( 'FileKey1=%s|special_chars_&-\'.txt', 'special_chars_&-\'.txt', False, True, False, True, True, True ), # *.log ( 'FileKey1=%s|*.LOG', None, False, True, False, True, True, True ), # semicolon separates different file types ( 'FileKey1=%s|*.log;*.bak', None, False, True, False, True, False, True ), # *.* ( 'FileKey1=%s|*.*', None, False, True, False, True, False, True ), # recurse *.* ( 'FileKey1=%s|*.*|RECURSE', None, False, True, False, False, False, True ), # remove self *.*, this removes the directory ( 'FileKey1=%s|*.*|REMOVESELF', None, False, False, False, False, False, True ), ] # Add positive detection, where the detection believes the application is present, # to all the tests, which are also positive. new_tests = [] for test in tests: for detect in ( \ "\nDetectFile=%%APPDATA%%\\Microsoft", \ "\nDetectFile1=%%APPDATA%%\\Microsoft\nDetectFile2=%%APPDATA%%\\does_not_exist", \ "\nDetectFile1=%%APPDATA%%\\does_not_exist\nDetectFile2=%%APPDATA%%\\Microsoft", \ "\nDetect=HKCU\\Software\\Microsoft", \ "\nDetect1=HKCU\\Software\\Microsoft\nDetect2=HKCU\\Software\\does_not_exist", \ "\nDetect1=HKCU\\Software\\does_not_exist\nDetect2=HKCU\\Software\\Microsoft"): new_ini = test[0] + detect new_test = [new_ini, ] + [x for x in test[1:]] new_tests.append(new_test) positive_tests = tests + new_tests # execute positive tests for test in positive_tests: print 'positive test: ', test (dirname, f1, f2, fbak) = setup_fake(test[1]) cleaner = ini2cleaner(test[0] % dirname) self.assertEqual(test[2], cleaner.auto_hide()) self.run_all(cleaner, False) self.run_all(cleaner, True) self.assertEqual(test[3], os.path.exists(dirname)) self.assertEqual(test[4], os.path.exists(f1)) self.assertEqual(test[5], os.path.exists(f2)) self.assertEqual(test[6], os.path.exists(fbak)) self.assertEqual(test[7], cleaner.auto_hide()) # negative tests where the application detect believes the application is absent for test in tests: for detect in ( "\nDetectFile=c:\\does_not_exist", # special characters for XML "\nDetectFile=c:\\does_not_exist_special_chars_&'", "\nDetectFile1=c:\\does_not_exist1\nDetectFile2=c:\\does_not_exist2", "\nDetect=HKCU\\Software\\does_not_exist", "\nDetect=HKCU\\Software\\does_not_exist_&'", "\nDetect1=HKCU\\Software\\does_not_exist1\nDetect2=HKCU\\Software\\does_not_exist1"): new_ini = test[0] + detect t = [new_ini, ] + [x for x in test[1:]] print 'negative test', t # execute the test (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner(t[0] % dirname, False) self.assertRaises(StopIteration, cleaner.next) # registry key, basic (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner('RegKey1=%s' % keyfull) self.run_all(cleaner, False) self.assertTrue(detect_registry_key(keyfull)) self.run_all(cleaner, True) self.assertFalse(detect_registry_key(keyfull)) # check for parse error with ampersand (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner('RegKey1=HKCU\\Software\\PeanutButter&Jelly') self.run_all(cleaner, False) self.run_all(cleaner, True)
def test_fake(self): """Test with fake file""" # reuse this path to store a winapp2.ini file in (ini_h, self.ini_fn) = tempfile.mkstemp(suffix='.ini', prefix='winapp2') os.close(ini_h) # a set of tests # this map explains what each position in the test tuple means # 0=line to write directly to winapp2.ini # 1=filename1 to place in fake environment (default=deleteme.log) # 2=auto-hide before cleaning # 3=dirname exists after cleaning # 4=filename1 (.\deleteme.log) exists after cleaning # 5=sub\deleteme.log exists after cleaning # 6=.\deleteme.bak exists after cleaning tests = [ # single file ('FileKey1=%s|deleteme.log', None, False, True, False, True, True), # single file, case matching should be insensitive ('FileKey1=%s|dEleteme.LOG', None, False, True, False, True, True), # special characters for XML ('FileKey1=%s|special_chars_&-\'.txt', 'special_chars_&-\'.txt', False, True, False, True, True), # *.log ('FileKey1=%s|*.LOG', None, False, True, False, True, True), # semicolon separates different file types ('FileKey1=%s|*.log;*.bak', None, False, True, False, True, False), # *.* ('FileKey1=%s|*.*', None, False, True, False, True, False), # recurse *.* ('FileKey1=%s|*.*|RECURSE', None, False, True, False, False, False ), # recurse *.log ('FileKey1=%s|*.log|RECURSE', None, False, True, False, False, True ), # remove self *.*, this removes the directory ('FileKey1=%s|*.*|REMOVESELF', None, False, False, False, False, False), ] # Add positive detection, where the detection believes the application is present, # to all the tests, which are also positive. new_tests = [] for test in tests: for detect in ( "\nDetectFile=%%APPDATA%%\\Microsoft", "\nSpecialDetect=DET_WINDOWS", "\nDetectFile1=%%APPDATA%%\\Microsoft\nDetectFile2=%%APPDATA%%\\does_not_exist", "\nDetectFile1=%%APPDATA%%\\does_not_exist\nDetectFile2=%%APPDATA%%\\Microsoft", "\nDetect=HKCU\\Software\\Microsoft", # Below checks that a space is OK in the registry key "\nDetect=HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", # Below checks Detect# where one of two keys exist. "\nDetect1=HKCU\\Software\\Microsoft\nDetect2=HKCU\\Software\\does_not_exist", "\nDetect1=HKCU\\Software\\does_not_exist\nDetect2=HKCU\\Software\\Microsoft", # Below checks Detect with DetectFile where one exists "\nDetect=HKCU\\Software\\Microsoft\nDetectFile=%%APPDATA%%\\does_not_exist", "\nDetect=HKCU\\Software\\does_not_exist\nDetectFile=%%APPDATA%%\\Microsoft" ): new_ini = test[0] + detect new_test = [ new_ini, ] + [x for x in test[1:]] new_tests.append(new_test) positive_tests = tests + new_tests # execute positive tests for test in positive_tests: print('positive test: ', test) self.assertEqual(len(test), 7) (dirname, fname1, fname2, fbak) = self.setup_fake(test[1]) cleaner = self.ini2cleaner(test[0] % dirname) self.assertEqual(test[2], cleaner.auto_hide()) self.run_all(cleaner, False) self.run_all(cleaner, True) self.assertCondExists(test[3], dirname) self.assertCondExists(test[4], fname1) self.assertCondExists(test[5], fname2) self.assertCondExists(test[6], fbak) shutil.rmtree(dirname, True) # negative tests where the application detect believes the application # is absent for test in tests: for detect in ( "\nDetectFile=c:\\does_not_exist", "\nSpecialDetect=DET_SPACE_QUEST", # special characters for XML "\nDetectFile=c:\\does_not_exist_special_chars_&'", "\nDetectFile1=c:\\does_not_exist1\nDetectFile2=c:\\does_not_exist2", "\nDetect=HKCU\\Software\\does_not_exist", "\nDetect=HKCU\\Software\\does_not_exist_&'", "\nDetect1=HKCU\\Software\\does_not_exist1\nDetect2=HKCU\\Software\\does_not_exist1" ): new_ini = test[0] + detect test_full = [ new_ini, ] + [x for x in test[1:]] print('negative test', test_full) # execute the test (dirname, fname1, fname2, fbak) = self.setup_fake() cleaner = self.ini2cleaner(test_full[0] % dirname, False) self.assertRaises(StopIteration, cleaner.__next__) shutil.rmtree(dirname, True) # registry key, basic (dirname, fname1, fname2, fbak) = self.setup_fake() cleaner = self.ini2cleaner('RegKey1=%s' % KEYFULL) self.run_all(cleaner, False) self.assertTrue(detect_registry_key(KEYFULL)) self.run_all(cleaner, True) self.assertFalse(detect_registry_key(KEYFULL)) shutil.rmtree(dirname, True) # check for parse error with ampersand (dirname, fname1, fname2, fbak) = self.setup_fake() cleaner = self.ini2cleaner( 'RegKey1=HKCU\\Software\\PeanutButter&Jelly') self.run_all(cleaner, False) self.run_all(cleaner, True) shutil.rmtree(dirname, True)
def test_fake(self): """Test with fake file""" ini_fn = None keyfull = 'HKCU\\Software\\BleachBit\\DeleteThisKey' subkey = 'Software\\BleachBit\\DeleteThisKey\\AndThisKey' def setup_fake(f1_filename=None): """Setup the test environment""" dirname = tempfile.mkdtemp(suffix='bleachbit_test_winapp') f1 = os.path.join(dirname, f1_filename or 'deleteme.log') file(f1, 'w').write('') dirname2 = os.path.join(dirname, 'sub') os.mkdir(dirname2) f2 = os.path.join(dirname2, 'deleteme.log') file(f2, 'w').write('') fbak = os.path.join(dirname, 'deleteme.bak') file(fbak, 'w').write('') self.assertTrue(os.path.exists(f1)) self.assertTrue(os.path.exists(f2)) self.assertTrue(os.path.exists(fbak)) hkey = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, subkey) hkey.Close() self.assertTrue(detect_registry_key(keyfull)) self.assertTrue(detect_registry_key('HKCU\\%s' % subkey)) return (dirname, f1, f2, fbak) def ini2cleaner(filekey, do_next=True): ini = file(ini_fn, 'w') ini.write('[someapp]\n') ini.write('LangSecRef=3021\n') ini.write(filekey) ini.write('\n') ini.close() self.assertTrue(os.path.exists(ini_fn)) if do_next: return Winapp(ini_fn).get_cleaners().next() else: return Winapp(ini_fn).get_cleaners() # reuse this path to store a winapp2.ini file in import tempfile (ini_h, ini_fn) = tempfile.mkstemp(suffix='.ini', prefix='winapp2') os.close(ini_h) # a set of tests tests = [ # single file ('FileKey1=%s|deleteme.log', None, False, True, False, True, True, True), # special characters for XML ('FileKey1=%s|special_chars_&-\'.txt', 'special_chars_&-\'.txt', False, True, False, True, True, True), # *.log ('FileKey1=%s|*.LOG', None, False, True, False, True, True, True), # semicolon separates different file types ('FileKey1=%s|*.log;*.bak', None, False, True, False, True, False, True), # *.* ('FileKey1=%s|*.*', None, False, True, False, True, False, True), # recurse *.* ('FileKey1=%s|*.*|RECURSE', None, False, True, False, False, False, True), # remove self *.*, this removes the directory ('FileKey1=%s|*.*|REMOVESELF', None, False, False, False, False, False, True), ] # Add positive detection, where the detection believes the application is present, # to all the tests, which are also positive. new_tests = [] for test in tests: for detect in ( "\nDetectFile=%%APPDATA%%\\Microsoft", "\nDetectFile1=%%APPDATA%%\\Microsoft\nDetectFile2=%%APPDATA%%\\does_not_exist", "\nDetectFile1=%%APPDATA%%\\does_not_exist\nDetectFile2=%%APPDATA%%\\Microsoft", "\nDetect=HKCU\\Software\\Microsoft", "\nDetect1=HKCU\\Software\\Microsoft\nDetect2=HKCU\\Software\\does_not_exist", "\nDetect1=HKCU\\Software\\does_not_exist\nDetect2=HKCU\\Software\\Microsoft"): new_ini = test[0] + detect new_test = [new_ini, ] + [x for x in test[1:]] new_tests.append(new_test) positive_tests = tests + new_tests # execute positive tests for test in positive_tests: print 'positive test: ', test (dirname, f1, f2, fbak) = setup_fake(test[1]) cleaner = ini2cleaner(test[0] % dirname) self.assertEqual(test[2], cleaner.auto_hide()) self.run_all(cleaner, False) self.run_all(cleaner, True) self.assertEqual(test[3], os.path.exists(dirname)) self.assertEqual(test[4], os.path.exists(f1)) self.assertEqual(test[5], os.path.exists(f2)) self.assertEqual(test[6], os.path.exists(fbak)) self.assertEqual(test[7], cleaner.auto_hide()) shutil.rmtree(dirname, True) # negative tests where the application detect believes the application # is absent for test in tests: for detect in ( "\nDetectFile=c:\\does_not_exist", # special characters for XML "\nDetectFile=c:\\does_not_exist_special_chars_&'", "\nDetectFile1=c:\\does_not_exist1\nDetectFile2=c:\\does_not_exist2", "\nDetect=HKCU\\Software\\does_not_exist", "\nDetect=HKCU\\Software\\does_not_exist_&'", "\nDetect1=HKCU\\Software\\does_not_exist1\nDetect2=HKCU\\Software\\does_not_exist1"): new_ini = test[0] + detect t = [new_ini, ] + [x for x in test[1:]] print 'negative test', t # execute the test (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner(t[0] % dirname, False) self.assertRaises(StopIteration, cleaner.next) # registry key, basic (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner('RegKey1=%s' % keyfull) self.run_all(cleaner, False) self.assertTrue(detect_registry_key(keyfull)) self.run_all(cleaner, True) self.assertFalse(detect_registry_key(keyfull)) # check for parse error with ampersand (dirname, f1, f2, fbak) = setup_fake() cleaner = ini2cleaner('RegKey1=HKCU\\Software\\PeanutButter&Jelly') self.run_all(cleaner, False) self.run_all(cleaner, True)