ordner werden nicht gelöscht
Verfasst: Dienstag 26. November 2013, 10:31
				
				hallo zusammen,
ich bastle gerade an einem testskript wo ich ein komisches verhalten habe.
in der main methode wird folgendes aufgerufen:
Die methode setup_environment() macht folgendes:
Im Grunde werden nur 2 Pfade auf Ordner umgebogen. Existieren diese nicht, werden sie erstellt. Unter anderem wird auch der Ordner angelegt, in dem VirtualBox seine Einstellungen speichert. Dann werden Images importiert, modifiziert, laufen gelassen, was auch immer und clean(self)  aufgerufen:
Am Ende sollen die Ordner wieder gelöscht werden. Komischerweise wird aber der Ordner TEST_SUITE_VM_SETTING_FOLDER nicht gelöscht. Der andere ist aber wie erwartet weg. Kann man irgendwie feststellen, ob irgendwas den Ordner blockiert? 
Vielen Dank.
			ich bastle gerade an einem testskript wo ich ein komisches verhalten habe.
in der main methode wird folgendes aufgerufen:
Code: Alles auswählen
        self.setup_environment()
       .... do something with virtual box
      clean()
Code: Alles auswählen
        #store the original environment
        try:
            self.__old_user_home = os.environ['VBOX_USER_HOME']
        except KeyError:
            pass
        #set the VBOX_USER_HOME
        os.environ['VBOX_USER_HOME'] = self.__test_suite.get("General", "TEST_SUITE_VM_SETTING_FOLDER")
        #create the vbox_user_home folder, if not exist
        if not os.path.exists(os.environ['VBOX_USER_HOME']):
            os.makedirs(os.environ['VBOX_USER_HOME'])
        #save the orginal machine store of virtual box
        p1 = subprocess.Popen(["VBoxManage", "list", "systemproperties"],
                            env=os.environ.copy(),
                            stdout=subprocess.PIPE)
        p2 = subprocess.Popen(["grep", "Default machine folder:"],
                            env=os.environ.copy(),
                            stdout=subprocess.PIPE,
                            stdin=p1.stdout)
        p1.stdout.close()
        out = p2.communicate()[0]
        self.__old_machine_home = out.split(":")[1].strip()
        #set the machine store of virtual box
        set_command = ["VBoxManage", "setproperty", "machinefolder",
                        self.__test_suite.get("General", "TEST_SUITE_VM_STORE_FOLDER") ]
        subprocess.call(set_command, env=os.environ.copy())
        #create the machine store folder, if not exist
        if not os.path.exists(self.__test_suite.get("General", "TEST_SUITE_VM_STORE_FOLDER")):
            os.makedirs(self.__test_suite.get("General", "TEST_SUITE_VM_STORE_FOLDER"))
Code: Alles auswählen
    def clean(self):
...
            if os.path.exists(self.__test_suite.get("General", "TEST_SUITE_VM_STORE_FOLDER")):
            shutil.rmtree(self.__test_suite.get("General", "TEST_SUITE_VM_STORE_FOLDER"))
        if os.path.exists(self.__test_suite.get("General", "TEST_SUITE_VM_SETTING_FOLDER")):
            shutil.rmtree(self.__test_suite.get("General", "TEST_SUITE_VM_SETTING_FOLDER"))
Vielen Dank.