Как обратиться к атрибуту TestClass unittest в декораторе @patch - PullRequest
0 голосов
/ 06 марта 2020

Я хочу использовать свой модуль tempfile для записи файлов в моем тестовом примере. Но у меня возникают проблемы со ссылками на него, когда usinng mock.patch

Предположим, у меня есть этот код, обратите внимание, что патч ссылается на self.test_dir

import unittest
from unittest.mock import patch
import tempfile

class TestSomething(unittest.TestCase):

    def setUp(self):
        self.test_dir = tempfile.TemporaryDirectory()

    def tearDown(self):
        # Close the file, the directory will be removed after the test
        self.test_dir.cleanup()

    @patch("sample_module.SampleClass.base_url", self.test_dir)
    def test_override(self):
        pass

Запуск этого кода приведет к эта ошибка

NameError: name 'self' is not defined

Так как test_dir инициализируется в методе setup и tearDown, как я могу использовать этот временный файл. TemporaryDirectory

Есть мысли?

...