summaryrefslogtreecommitdiff
path: root/src/tox/tox_env/api.py
diff options
context:
space:
mode:
authorBernát Gábor <bgabor8@bloomberg.net>2021-08-06 13:02:08 +0100
committerGitHub <noreply@github.com>2021-08-06 13:02:08 +0100
commit5b9122be50fa10c89b72d91220ec9fec2f75cef0 (patch)
tree2662cbe378378249cdad7b81fc5e8387ddff6719 /src/tox/tox_env/api.py
parent9598a5b82c3eeae0925e4ca01b72ce4ed5542e05 (diff)
downloadtox-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.py9
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)