From 61c178d22258ef9338c6630f461077ce3974e16f Mon Sep 17 00:00:00 2001 From: Bastiaan Welmers Date: Sat, 9 May 2020 11:36:18 +0200 Subject: [PATCH] Clean temporary files by default --- tests/videodinges/base.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/videodinges/base.py b/tests/videodinges/base.py index 9962367..31c9d44 100644 --- a/tests/videodinges/base.py +++ b/tests/videodinges/base.py @@ -5,18 +5,28 @@ from django.test import override_settings class UploadMixin(TestCase): - base_upload_dir: str + clean_uploads_after_run = True + base_upload_dir: tempfile.TemporaryDirectory + @classmethod def setUpClass(cls) -> None: super().setUpClass() - cls.base_upload_dir = tempfile.mkdtemp(suffix='-videodinges-tests') + cls.base_upload_dir = tempfile.TemporaryDirectory(suffix='-videodinges-tests') def setUp(self) -> None: super().setUp() - media_root = tempfile.mkdtemp(suffix='-' + self.__class__.__name__, dir=self.base_upload_dir) - self.media_root_override_settings = override_settings(MEDIA_ROOT=media_root) + self.media_root = tempfile.TemporaryDirectory(suffix='-' + self.__class__.__name__, dir=self.base_upload_dir.name) + self.media_root_override_settings = override_settings(MEDIA_ROOT=self.media_root.name) self.media_root_override_settings.enable() def tearDown(self) -> None: self.media_root_override_settings.disable() + if self.clean_uploads_after_run: + self.media_root.cleanup() super().tearDown() + + @classmethod + def tearDownClass(cls) -> None: + if cls.clean_uploads_after_run: + cls.base_upload_dir.cleanup() + super().tearDownClass()