У меня возникли проблемы с Python mock(), и я недостаточно знаком, чтобы понять, что с ним происходит.
У меня есть абстрактный класс асинхронной задачи, который выглядит примерно так:
class AsyncTask(object):
@classmethod
def enqueue(cls):
....
task_ent = cls.createAsyncTask(body, delayed=will_delay)
....
Я хотел бы исправить метод createAsyncTask для конкретного экземпляра этого класса.
Код, который я написал, выглядит так:
@patch.object(CustomAsyncTaskClass, "createAsyncTask")
def test_my_test(self, mock_create_task):
....
mock_create_task.return_value = "12"
fn() # calls CustomAsyncTaskClass.enqueue(...)
....
Когда я распечатываю task_ent в очереди, я получаю <MagicMock name='createAsyncTask()' id='140578431952144'>
Когда я распечатываю cls.createAsyncTask
в очереди, я получаю <MagicMock name='createAsyncTask' id='140578609336400'>
Что я делаю не так? Почему createAsyncTask не возвращает 12?