Поведение 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, она проверяет, является ли переданная сущность на самом деле функцией / методом.

Другие вопросы по тегам