| | |
| | |
| | |
| | |
| | |
| |
|
| | import os |
| | import tempfile |
| |
|
| |
|
| | class TempDirMixin: |
| | """Mixin to provide easy access to temp dir. |
| | """ |
| |
|
| | temp_dir_ = None |
| |
|
| | @classmethod |
| | def get_base_temp_dir(cls): |
| | |
| | |
| | key = "AUDIOCRAFT_TEST_DIR" |
| | if key in os.environ: |
| | return os.environ[key] |
| | if cls.temp_dir_ is None: |
| | cls.temp_dir_ = tempfile.TemporaryDirectory() |
| | return cls.temp_dir_.name |
| |
|
| | @classmethod |
| | def tearDownClass(cls): |
| | if cls.temp_dir_ is not None: |
| | try: |
| | cls.temp_dir_.cleanup() |
| | cls.temp_dir_ = None |
| | except PermissionError: |
| | |
| | |
| | |
| | |
| | pass |
| | super().tearDownClass() |
| |
|
| | @property |
| | def id(self): |
| | return self.__class__.__name__ |
| |
|
| | def get_temp_path(self, *paths): |
| | temp_dir = os.path.join(self.get_base_temp_dir(), self.id) |
| | path = os.path.join(temp_dir, *paths) |
| | os.makedirs(os.path.dirname(path), exist_ok=True) |
| | return path |
| |
|
| | def get_temp_dir(self, *paths): |
| | temp_dir = os.path.join(self.get_base_temp_dir(), self.id) |
| | path = os.path.join(temp_dir, *paths) |
| | os.makedirs(path, exist_ok=True) |
| | return path |
| |
|