Итак, вы хотите проверить свою foo()
функцию. Вместо того, чтобы пытаться изменить переменную среды до определения объекта class
, попробуйте смоделировать уже существующий атрибут class
. Так как объект класса создается до запуска теста, а атрибут VAR_A
уже инициализирован.
import os
from unittest import TestCase
from unittest.mock import patch
class A:
VAR_A = os.environ.get("ABC")
@classmethod
def foo(cls):
return cls.VAR_A
@patch.object(A, 'VAR_A', 'abc')
class Test_A(TestCase):
def test_foo(self):
self.assertEqual(A.foo(), 'abc')