Поведение asynctest CoroutineMock перестало работать при переходе с python3.5 на python3.6
Я был python3.5 ранее. Этот кусок кода делал предназначенную работу
wrapped_func = CoroutineMock(spec=['func_name'])
wrapped_func.func_name.return_value = ['abc']
Теперь, когда я перешел на python3.6, этот код сломался
def some_other_func():
yield from func_name
Я получаю следующую ошибку:
Got bad yield
1 ответ
Проблема заключалась в более строгой проверке в asyncio 'iscoroutinefunction' в python3.6. В python3.6 функция iscoroutine не просто проверяет наличие _is_coroutine, она проверяет, является ли переданная сущность на самом деле функцией / методом.