diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2021-02-27 16:16:14 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2021-02-27 16:16:14 +0100 |
| commit | 632f88fd315626bf3196024f2a67c5288ea56333 (patch) | |
| tree | a041d430ac73cb6d14d61370b168b7ea1c28a2a6 /minishell_test/sandbox.py | |
| parent | 86355a6fd7375f954bf92cb49a14c718610c4d60 (diff) | |
| parent | 820d1ee00975d2e7859e4b2aded88dbf56a3b347 (diff) | |
| download | minishell_test-632f88fd315626bf3196024f2a67c5288ea56333.tar.gz minishell_test-632f88fd315626bf3196024f2a67c5288ea56333.tar.bz2 minishell_test-632f88fd315626bf3196024f2a67c5288ea56333.zip | |
Merge branch 'config'
Diffstat (limited to 'minishell_test/sandbox.py')
| -rw-r--r-- | minishell_test/sandbox.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/minishell_test/sandbox.py b/minishell_test/sandbox.py index f10eacf..980cfe7 100644 --- a/minishell_test/sandbox.py +++ b/minishell_test/sandbox.py @@ -6,23 +6,21 @@ # By: charles <me@cacharle.xyz> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/09/11 13:48:07 by charles #+# #+# # -# Updated: 2021/02/05 14:54:37 by charles ### ########.fr # +# Updated: 2021/02/27 12:32:17 by cacharle ### ########.fr # # # # ############################################################################ # -import os -import glob import shutil import subprocess from contextlib import contextmanager -import minishell_test.config as config +from minishell_test import config def create(): """Create a new sandbox directory""" try: - os.mkdir(config.SANDBOX_PATH) + config.SANDBOX_DIR.mkdir(parents=True, exist_ok=True) except OSError: pass @@ -32,10 +30,10 @@ def remove(): Brute force rm -rf if clean removal doesn't work due to permissions. """ try: - shutil.rmtree(config.SANDBOX_PATH) + shutil.rmtree(config.SANDBOX_DIR) except PermissionError: - subprocess.run(["chmod", "777", *glob.glob(config.SANDBOX_PATH + "/*")], check=True) - subprocess.run(["rm", "-rf", config.SANDBOX_PATH], check=True) + subprocess.run(["chmod", "777", *config.SANDBOX_DIR.glob("*")], check=True) + shutil.rmtree(config.SANDBOX_DIR) except FileNotFoundError: pass @@ -44,5 +42,7 @@ def remove(): def context(): """Sandbox context manager""" create() - yield - remove() + try: + yield + finally: + remove() |
