Как изменить переменную окружения только во время тестирования в Django?
У меня есть класс, который расширяет корень TestCase
. Я хотел бы установить переменную окружения в каждом из тестов, расширяющих этот класс, чтобы не циклиться на ненужных API-запросах.
Когда я помещаю декоратор патча за пределы класса, он не оказывает никакого эффекта.
Когда я помещаю декоратор патча прямо над setUp, патч длится только в течение всего времени setUp.
import mock, os
from django.test import TestCase
#patching here seems to have no effect
class TCommerceTestCase(TestCase):
@mock.patch.dict(os.environ, {
"INSIDE_TEST": "True"
})
def setUp(self):
self.assertEqual(os.environ["INSIDE_TEST"], "True") # works!
def test_inside_test(self):
self.assertEqual(os.environ["INSIDE_TEST"], "True") # Fails!
Как исправить переменную окружения в тесте Django (без ручного исправления каждой функции?)
Попробуйте сделать это таким образом:
import mock, os
from django.test import TestCase
class TCommerceTestCase(TestCase):
@mock.patch.dict(os.environ, {
"INSIDE_TEST": "True"
})
def test_inside_test(self):
self.assertEqual(os.environ["INSIDE_TEST"], "True")
```