Странные ошибки при попытке проверить вызов Request.post с помощью pytest-mockitoPython

Программы на Python
Anonymous
Странные ошибки при попытке проверить вызов Request.post с помощью pytest-mockito

Сообщение Anonymous »

Я пробую библиотеку pytest-mockito для модульного тестирования (в основном я инженер Kotlin/Java и думаю, что синтаксис Mockito читается немного лучше). По большей части это имеет смысл, но я сталкиваюсь со странной ошибкой при попытке проверить запрос на публикацию.

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

class TestSuite:
def test_verify_we_sent_data_somewhere(self):
api_url = "http://www.somebooksearch.biz/search"
payload = {"title": "An updated title", "isbn": 12345}

update_book(payload)

verify(requests).post(api_url, data=None, json=payload)

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

# Implementation:

def update_book(payload):
requests.post("http://www.somebooksearch.biz/search", json=payload)
Когда я запускаю тестовый пример, я получаю сообщение об ошибке:

verify(requests).post(api_url, json =payload, **kwargs)
Eockito.mockito.ArgumentError: obj '' не зарегистрирован
example_test.py:93: ArgumentError
< /blockquote>
Однако это странно, потому что у меня есть другой тестовый пример, в котором я имитирую запрос на получение, и он проходит нормально:

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

    def test_mock_an_external_library_but_without_comments(self):
api_url = "http://www.somebooksearch.biz/search"

mock_response = mock({
"json": lambda: {"books": [{"title": "Some book title", "isbn": "123456"}]}
})

when(requests).get(api_url).thenReturn(mock_response)

actual = get_book_list()

assert actual == [{"title": "Some book title", "isbn": "123456"}]

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

# Implementation
def get_book_list():
response = requests.get("http://www.somebooksearch.biz/search")
data = response.json()
return data["books"]
Я вижу, что здесь говорится об ошибке аргумента, но я не совсем понимаю, что это значит. Я знаю, что в описании библиотеки говорится, что ложные аргументы очень разборчивы, но я не совсем уверен, что я упускаю или ошибаюсь. Любая помощь приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/790 ... st-mockito

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