Как определить произвольные атрибуты на объектах ложного класса? - PullRequest
1 голос
/ 12 июня 2019

У меня есть класс, определенный в модуле abc.myModule:

Class MyClass:
  def __init__(self, a):
     self.a_value = a

Теперь у меня есть скрипт, который выполняет:

c = MyClass('a')
print c.a_value

Теперь в моем модульном тесте для вышеупомянутого яЯ хочу исправить MyClass, поэтому любой объект MyClass вернет 'XYZ' для его a._value().Поэтому я делаю:

@patch('abc.myModule.MyClass, a_value=True) 

Этот патч заставит MyClass вернуть .a_value() True, но для любого объекта MyClass по-прежнему не определено a_value.Что я могу сделать, чтобы исправить это?

1 Ответ

1 голос
/ 12 июня 2019

Объекты MyClass создаются при вызове MyClass. Поэтому вам просто нужно убедиться, что вы установили a_value для возвращаемого значения MyClass:

@patch('abc.myModule.MyClass', a_value=True) 
def test_something(self, mock_myclass):
    mock_myclass.return_value.a_value = True  # Ensure a_value is set for objects
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...