Python: инициализация макета как переменной класса - PullRequest
0 голосов
/ 07 февраля 2019

Я запустил фиктивный патч для 'a.foo' двумя разными способами.В TestUtils1 переменные класса определяются сразу.В TestUtils2 вызывается функция настройки.Почему тип mock_config_file отличается в зависимости от инициализации?Он отличается между PropertyMock и MagicMock после запуска.

class TestUtils1:
   config_file_patcher = mock.patch('a.foo',new_callable=mock.PropertyMock) <mock.mock._patch object>
   mock_config_file = config_file_patcher.start()                           <PropertyMock name='_config_file' id='413585304'>

class TestUtils2:
   config_file_patcher = None
   mock_config_file = None

   @classmethod
   def setup(cls):
       cls.config_file_patcher = mock.patch('a.foo', new_callable=mock.PropertyMock) <mock.mock._patch object>
       cls.mock_config_file = cls.config_file_patcher.start()                        <MagicMock name='_config_file()' id='471135344'>

Результатом TestUtils1 является ожидаемый результат.В TestUtils2 почему mock_config_file имеет тип MagicMock вместо PropertyMock?

...