def register_cleaners(cb_progress=lambda x: None, cb_done=lambda: None): """Register all known cleaners: system, CleanerML, and Winapp2""" global backends # wipe out any registrations # Because this is a global variable, cannot use backends = {} backends.clear() # initialize "hard coded" (non-CleanerML) backends backends["openofficeorg"] = OpenOfficeOrg() backends["system"] = System() # register CleanerML cleaners from bleachbit import CleanerML cb_progress(_('Loading native cleaners.')) for ret in CleanerML.load_cleaners(cb_progress): yield ret # register Winapp2.ini cleaners if 'nt' == os.name: cb_progress(_('Importing cleaners from Winapp2.ini.')) from bleachbit import Winapp for ret in Winapp.load_cleaners(cb_progress): yield ret cb_done() yield False # end the iteration
def test_os_match(self): """Unit test for os_match""" xmlcleaner = CleanerML("doc/example_cleaner.xml") # blank always matches self.assertTrue(xmlcleaner.os_match("")) # as Linux self.assertFalse(xmlcleaner.os_match('windows', 'linux2')) self.assertTrue(xmlcleaner.os_match('linux', 'linux2')) self.assertTrue(xmlcleaner.os_match('unix', 'linux2')) # as Windows self.assertFalse(xmlcleaner.os_match('linux', 'win32')) self.assertFalse(xmlcleaner.os_match('unix', 'win32')) self.assertTrue(xmlcleaner.os_match('windows', 'win32')) # as unknown operating system with self.assertRaises(RuntimeError): xmlcleaner.os_match('linux', 'hal9000')
def register_cleaners(): """Register all known cleaners: system, CleanerML, and Winapp2""" global backends # wipe out any registrations # Because this is a global variable, cannot use backends = {} backends.clear() # initialize "hard coded" (non-CleanerML) backends backends["openofficeorg"] = OpenOfficeOrg() backends["system"] = System() # register CleanerML cleaners from bleachbit import CleanerML CleanerML.load_cleaners() # register Winapp2.ini cleaners if 'nt' == os.name: from bleachbit import Winapp Winapp.load_cleaners()
def register_cleaners(): """Register all known cleaners: system, CleanerML, and Winapp2""" # 클리너 등록 global backends # wipe out any registrations backends에 등록한것을 지운다 # Because this is a global variable, cannot use backends = {} 왜냐하면 전역변수 backends이므로 backends 딕셔너리를 사용할수없다. backends.clear() # 초기화 # initialize "hard coded" (non-CleanerML) backends backends["openofficeorg"] = OpenOfficeOrg() # backends 초기화 backends["system"] = System() # 초기화 # register CleanerML cleaners from bleachbit import CleanerML CleanerML.load_cleaners() # CleanerML에서 클리너를 불러온다. # register Winapp2.ini cleaners if 'nt' == os.name: from bleachbit import Winapp Winapp.load_cleaners() # 윈도우 운영체제일 경우 Winaap에서 클리너를 불러온다
def test_CleanerML(self): """Unit test for class CleanerML""" xmlcleaner = CleanerML("doc/example_cleaner.xml") self.assertIsInstance(xmlcleaner, CleanerML) self.assertIsInstance(xmlcleaner.cleaner, Cleaner.Cleaner) # preview self.run_all(xmlcleaner, False) # really delete if user allows if common.destructive_tests('example_cleaner.xml'): self.run_all(xmlcleaner, True)
def test_var(self): """Test the <var> element""" xml_str = r""" <cleaner id="testvar"> <label>cleaner label</label> <description>cleaner description</description> <var name="basepath"> <value>%%LocalAppData%%\FooDoesNotExist</value> <value>~/.config/FooDoesNotExist</value> <value>{tempdir}/a</value> <value>{tempdir}/b</value> </var> <option id="option1"> <label>option1 label</label> <description>option1 description</description> <action search="file" command="delete" path="$$basepath$$/test.log" /> </option> </cleaner> """.format(**{'tempdir': self.tempdir}) # write XML cleaner cml_path = os.path.join(self.tempdir, 'test.xml') self.write_file(cml_path, xml_str) # create two canaries test_log_path_a = os.path.join(self.tempdir, 'a', 'test.log') test_log_path_b = os.path.join(self.tempdir, 'b', 'test.log') common.touch_file(test_log_path_a) common.touch_file(test_log_path_b) self.assertExists(test_log_path_a) self.assertExists(test_log_path_b) # parse XML to XML cleaner instance xmlc = CleanerML(cml_path) self.assertIsInstance(xmlc, CleanerML) self.assertIsInstance(xmlc.cleaner, Cleaner.Cleaner) self.assertTrue(xmlc.cleaner.is_usable()) # run preview self.run_all(xmlc, False) self.assertExists(test_log_path_a) self.assertExists(test_log_path_b) # really delete self.run_all(xmlc, True) self.assertNotExists(test_log_path_a) self.assertNotExists(test_log_path_b)
def test_CleanerML(self): """Unit test for class CleanerML""" xmlcleaner = CleanerML("../doc/example_cleaner.xml") self.assertIsInstance(xmlcleaner, CleanerML) self.assertIsInstance(xmlcleaner.cleaner, Cleaner.Cleaner) def run_all(really_delete): for (option_id, __name) in xmlcleaner.cleaner.get_options(): for cmd in xmlcleaner.cleaner.get_commands(option_id): for result in cmd.execute(really_delete): common.validate_result(self, result, really_delete) # preview run_all(False) # really delete if user allows if common.destructive_tests('example_cleaner.xml'): run_all(True)