reset_mock () получил неожиданный ключевой аргумент return_value - почему? - PullRequest
1 голос
/ 23 января 2020

Согласно документации unittest.mock.reset_mock , reset_mock принимает аргументы ключевых слов return_value и side_effect. Но когда я пытаюсь его использовать, я получаю TypeError:

from unittest.mock import patch
import pandas

def foo():
    return pandas.read_csv("/dev/null")

@patch("pandas.read_csv", autospec=True)
def test_foo(pr):
    pr.return_value = 42
    foo()
    pr.reset_mock(return_value=True)
    foo()

Запуск с pytest дает:

============================= test session starts ==============================
platform linux -- Python 3.7.3, pytest-5.3.0, py-1.8.0, pluggy-0.13.0
rootdir: /tmp
plugins: mock-1.12.1, cov-2.8.1
collected 1 item

mwe17.py F                                                               [100%]

=================================== FAILURES ===================================
___________________________________ test_foo ___________________________________

pr = <function read_csv at 0x7fdeff5ddbf8>

    @patch("pandas.read_csv", autospec=True)
    def test_foo(pr):
        pr.return_value = 42
        foo()
>       pr.reset_mock(return_value=True)
E       TypeError: reset_mock() got an unexpected keyword argument 'return_value'

mwe17.py:11: TypeError
============================== 1 failed in 2.83s ===============================

Когда я высмеиваю os.mkdir вместо pandas.read_csv , это действительно работает.

Почему reset_mock, когда насмешливая одна функция не может принять этот аргумент ключевого слова, но насмешливая другая делает?

...