Exemplo n.º 1
0
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
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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에서 클리너를 불러온다
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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')