Как я могу проверить, что метод класса был передан в качестве параметра для высмеиваемого методаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу проверить, что метод класса был передан в качестве параметра для высмеиваемого метода

Сообщение Anonymous »

Скажи, что у меня есть такие занятия: < /p>

Код: Выделить всё

class MyTask(QtCore.QObject):
def do(self):
...

class Manager(QtCore.QObject):
def __init__(self):
super().__init__()
self.worker_executor = concurrent.futures.ThreadPoolExecutor()

def run_task(self):
self.worker_executor.submit(MyTask().do)
Я хочу проверить, используя pytest, этот метод Do (т.е. любой) экземпляра mytask передается как параметр ThreadPoolexeCutor.submit .

Код: Выделить всё

manager.worker_executor.submit = mock.Mock()
manager.run_task()
mock_call = manager.worker_executor.submit.call_args_list[0]
assert mock_call.args[0] == MyTask.do # False
< /code>
Я не удивлен, что это не удалось, с помощью сообщения: < /p>
AssertionError: assert  == 
Как связанный метод сравнивается с функцией.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -mocked-me
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»