def test_removes_directories(self):
        directories = [
            tempfile.mkdtemp(), tempfile.mkdtemp(),
            tempfile.mkdtemp(), tempfile.mkdtemp(),
            "THIS PATH DOES NOT EXIST"
        ]
        system = System()
        system._remove_directories(directories)

        for directory in directories:

            # This is here because the default behavior for the
            # underlying remove_directory() function is to ignore
            # ENOENT
            if directory == "THIS PATH DOES NOT EXIST":
                continue

            if not isdir(directory):
                continue

            # Maybe the directory was not removed?  If not
            # then we should expect it to be in atexit
            for function, args, keywords in atexit._exithandlers:
                if directory in args:
                    break
            else:
                self.fail("Directory %s not removed" % directory)
 def test_remove_directories_exception(self):
     system = System()
     for entry in ("", 1, None, 1.0):
         with self.assertRaises(AssertionError):
             system._remove_directories(entry)