Как классически удалить TemporaryDirectory (без оператора `with`) - PullRequest
0 голосов
/ 24 апреля 2020

Tempfile обычно используется в сочетании с оператором with. Я хотел бы использовать его без него в классе unittest. Тесты создают ряд файлов, которые не мешают друг другу. Таким образом, я планировал просто создать временный каталог, в который я дам их все и удалить каталог, когда тестовый класс закончится. Тем не менее, я не мог найти, как удалить TemporaryDirectory в tearDownClass (cls)? Нужно ли вообще что-то делать? Есть ли лучший подход?


import pathlib
import tempfile
import unittest


class MyTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls) -> None:
        cls.temp_dir = tempfile.TemporaryDirectory()

    @classmethod
    def tearDownClass(cls) -> None:
        # How can I close the tempfile here?
        # cls.temp_dir.close() <- does not exist

    def test_save_file(self):
        file_path = pathlib.Path(temp_dir.name) / "my_file.abc"
        # Function which saves stuff into file

    # more tests which store other files into the temp_dir

...