Как правильно заменить @ pytest.mark.gen_test после обновления pytest до 4.0.2? - PullRequest
1 голос
/ 15 марта 2019

У меня есть тесты сопутствующих программ торнадо, которые прошли под pytest 3.8.2, но недавно я обновился до 4.0.2, и теперь я получаю эти тесты неудачно со следующим сообщением.

    @pytest.mark.tryfirst
    def pytest_pyfunc_call(pyfuncitem):
        gen_test_mark = pyfuncitem.keywords.get('gen_test')
        if gen_test_mark:
            io_loop = pyfuncitem.funcargs.get('io_loop')
>           run_sync = gen_test_mark.kwargs.get('run_sync', True)
E           _pytest.warning_types.RemovedInPytest4Warning: MarkInfo objects are deprecated as they contain merged marks which are hard to deal with correctly.
E           Please use node.get_closest_marker(name) or node.iter_markers(name).
E           Docs: https://docs.pytest.org/en/latest/mark.html#updating-code

/usr/local/lib/python3.5/dist-packages/pytest_tornado/plugin.py:98: RemovedInPytest4Warning

Iпосмотрел предложенный URL и попытался найти в сети, но, к сожалению, ничего не смог понять сам.

В тестах используется @pytest.mark.gen_test декоратор.

Итак, кто-нибудь может пролить свет на это?Как заставить эти тесты пройти снова?

1 Ответ

0 голосов
/ 15 марта 2019

Проблема, связанная с pytest-tornado, которую я заменил на pytest-tornado-yen3==0.5.2, но, к сожалению, pytest начал падать с ImportError: No module named 'pytest_tornado'

В конце концов я закончил с этим.

pip3 uninstall pytest-tornado-yen3 pytest-tornado pytest
pip3 install pytest-tornado-yen3==0.5.2 pytest==4.0.2 

И проблема исчезла.

...