diff options
author | Bernát Gábor <bgabor8@bloomberg.net> | 2021-08-06 13:02:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-06 13:02:08 +0100 |
commit | 5b9122be50fa10c89b72d91220ec9fec2f75cef0 (patch) | |
tree | 2662cbe378378249cdad7b81fc5e8387ddff6719 /src/tox/tox_env/api.py | |
parent | 9598a5b82c3eeae0925e4ca01b72ce4ed5542e05 (diff) | |
download | tox-git-5b9122be50fa10c89b72d91220ec9fec2f75cef0.tar.gz |
When cleaning dirs clean only their content (#2140)
Instead only delete their content. This allows the user to cd into these
and them being still valid after a new run.
Signed-off-by: Bernát Gábor <gaborjbernat@gmail.com>
Diffstat (limited to 'src/tox/tox_env/api.py')
-rw-r--r-- | src/tox/tox_env/api.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/tox/tox_env/api.py b/src/tox/tox_env/api.py index c0bb3c00..ac037400 100644 --- a/src/tox/tox_env/api.py +++ b/src/tox/tox_env/api.py @@ -4,7 +4,6 @@ Defines the abstract base traits of a tox environment. import logging import os import re -import shutil import sys from abc import ABC, abstractmethod from contextlib import contextmanager @@ -20,6 +19,7 @@ from tox.journal import EnvJournal from tox.report import OutErr, ToxHandler from tox.tox_env.errors import Recreate, Skip from tox.tox_env.installer import Installer +from tox.util.path import ensure_empty_dir from .info import Info @@ -261,7 +261,7 @@ class ToxEnv(ABC): env_tmp_dir = self.env_tmp_dir if env_tmp_dir.exists() and next(env_tmp_dir.iterdir(), None) is not None: LOGGER.debug("clear env temp folder %s", env_tmp_dir) - shutil.rmtree(env_tmp_dir, ignore_errors=True) + ensure_empty_dir(env_tmp_dir) env_tmp_dir.mkdir(parents=True, exist_ok=True) def _clean(self, force: bool = False) -> None: # noqa: U100 @@ -270,7 +270,7 @@ class ToxEnv(ABC): env_dir = self.env_dir if env_dir.exists(): LOGGER.warning("remove tox env folder %s", env_dir) - shutil.rmtree(env_dir) + ensure_empty_dir(env_dir) self.cache.reset() self._run_state.update({"setup": False, "clean": True}) @@ -390,8 +390,7 @@ class ToxEnv(ABC): def _log_execute(self, request: ExecuteRequest, status: ExecuteStatus) -> None: if self._log_id == 0: # start with fresh slate on new run - shutil.rmtree(self.env_log_dir, ignore_errors=True) - self.env_log_dir.mkdir(parents=True, exist_ok=True) + ensure_empty_dir(self.env_log_dir) self._log_id += 1 self._write_execute_log(self.name, self.env_log_dir / f"{self._log_id}-{request.run_id}.log", request, status) |